삼항 표현이 작동하지 않는 이유는 무엇입니까?
-
08-06-2019 - |
문제
페이지 요소를 표시하거나 숨기도록 플래그를 설정하려고 하는데 식이 false인 경우에도 항상 표시됩니다.
$canMerge = ($condition1 && $condition2) ? 'true' : 'false';
...
<?php if ($canMerge) { ?>Stuff<?php } ?>
무슨 일이야?
해결책
문자열로서의 'false'는 부울로서 true로 평가되기 때문에 이것은 깨졌습니다.
그러나 이는 결과 값이 단순 true 및 false이므로 불필요한 삼항 표현식입니다.이는 동일합니다.
$canMerge = ($condition1 && $condition2);
다른 팁
'false'의 값은 true입니다.따옴표를 제거해야 합니다.
$canMerge = ($condition1 && $condition2) ? true : false;
특히 PHP 작동 방식의 불일치로 인해 합리적인 질문인 것 같습니다.
예를 들어, 다음 코드는 'false'를 출력합니다.
$a = '0';
if($a)
{
echo 'its true';
}
else
{
echo 'its false';
}
$canMerge = ($condition1 && $condition2);
그 다음에
if ($canMerge){
echo "Stuff";
}
제휴하지 않습니다 StackOverflow