Copy
function coloringixwi($valll){
$colorsett = '';
$colorl = strlen($valll);
if ($colorl>10) {
if (strpos($valll,'car')||strpos($valll,'bycle')) {
$colorsett = 'bad';
}
} else {
if ($valll!=1000&&$valll!=1) {
$colorsett = 'good';
}
}
return $colorsett;
}
if 문이 이중으로 있는데 좀 보기가 그래서요.
이럴때는 어떻게 해야 하나요?
이게 최선인가요??
코드 리뷰해주실분..
|
답변 5개
채택된 답변
+20 포인트
2020-08-31 (월) 18:27:37
strpos 함수를 사용할때 찾을 단어가 처음에 올경우에는 반환값이 0 이라서 타입비교까지 해야됩니다.
Copy
function coloringixwi($valll){
$colorsett = '';
$colorl = strlen($valll);
// 반환위치가 처음이라면 0을 반환함
$pos = (strpos($valll,'car') !== false || strpos($valll,'bycle') !== false) ? true : false;
if ($colorl>10 && $pos ) {
$colorsett = 'bad';
} else if ($valll!=1000 && $valll!=1){
$colorsett = 'good';
}
return $colorsett;
}
echo coloringixwi('123456789').PHP_EOL;
echo coloringixwi('123456789car').PHP_EOL;
echo coloringixwi('car123456789').PHP_EOL; // 0
echo coloringixwi('12345car6789').PHP_EOL;
echo coloringixwi('123456789bycle').PHP_EOL;
echo coloringixwi('bycle123456789').PHP_EOL; // 0
echo coloringixwi(2);
2020-09-01 (화) 00:23:19
저같은 경우 if문이 한줄인 경우 { } 는 생략하고 이렇게 씁니다
if ($colorl>10 && (strpos($valll,'car') !==false || strpos($valll,'bycle') !==false) ) $colorsett = 'bad';
else if ($colorl<=10 && $valll !=1000 && $valll !=1) $colorsett = 'good';
마르스컴퍼니
2020-08-31 (월) 18:48:23
원 코드로 사용하는 게 가장 좋습니다.
이중 if 문을 무리하게 줄이면, 가독성이 떨어지게 됩니다.
2020-08-31 (월) 18:23:18
위에 플래토님이 잘 답변해주셧는데요.
if($colorl>10) 이렇게 쓰는것 보다는
if(10<$colorl) 이렇게 쓰는 것이 더 좋습니다.
왜냐하면 보통 수학에서 10 < 20 <30 이렇게 대소비교를 하기 때문에
if(10<$colorl) 이렇게 쓰는 것이 더 직관적이고
사회적 통념에 맞게끔 작성된 것이기 때문에 가독성이 더 좋기 때문입니다.
2020-08-31 (월) 18:05:15
Copy
...
if ($colorl > 10 && (strpos($valll,'car')||strpos($valll,'bycle'))) {
$colorsett = 'bad';
}
else if ($color1 <= 10 && ($valll!=1000&&$valll!=1)) {
$colorsett = 'good';
}
...
답변을 작성하려면 로그인이 필요합니다.