PHP에서 부울 운영자는 종종 조건부 판단에 사용됩니다. 그러나 부울 값이 잘못 기록되면 다음 경고가 트리거 될 수 있습니다.
PHP Notice: Use of undefined constant true/false - assumed 'true/false'
이 오류는 정의되지 않은 상수가 부울 판단에 사용됨을 나타냅니다. 다음으로 이유를 분석하고 몇 가지 공통 솔루션을 소개합니다.
이 문제의 본질은 부울 값을 문자열 또는 정의되지 않은 상수로 사용하는 것입니다. 예를 들어, 다음 코드는 구문 적으로는 정확하지만 위의 경고를 유발합니다.
$flag = true;
if($flag == true) { ... }
PHP가 TRUE를 언어 키워드로 인식하지 못하면 상수로 해석됩니다. 상수가 정의되지 않으면 오류가 발생합니다.
가장 직접적인 해결책은 PHP의 내장 부울 값을 참고 거짓 으로 사용하는 동시에 판단에서 중복 비교를 생략하는 것입니다.
$flag = true;
if($flag) { ... }
$ flag 자체는 부울 유형이므로 == 진정한 비교를 할 필요가 없습니다.
비즈니스에서 부울 값을 표현하기 위해 상수를 사용해야하는 경우 먼저 정의하십시오.
define('MY_TRUE', true);
$flag = MY_TRUE;
if($flag == true) { ... }
이것은 PHP가 my_true를 정의되지 않은 식별자로 식별하는 것을 방지합니다.
또 다른 권장되는 접근법은 합동 연산자를 사용하는 것인데, 이는 값이 동일하다는 것을 결정할뿐만 아니라 유형도 일관되도록 요구하는 것입니다.
$flag = true;
if($flag === true) { ... }
이 방법은 유형 불일치로 인한 암시 적 오류를 방지 할 수 있으며 더 엄격합니다.
PHP에서 논리적 판단을 할 때 부울을 올바르게 사용하는 것이 중요합니다. 다음 지점을 명심하십시오.
이러한 방법을 통해 "정의되지 않은 상수/거짓"클래스의 일반적인 PHP 오류는 효과적으로 피할 수 있습니다.