문제

페이지 요소를 표시하거나 숨기도록 플래그를 설정하려고 하는데 식이 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";
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top