2010-01-29 6 views
0

PHP가 존재하지 않는 상수를 호출하는 중 오류가 있다고 가정하지 않습니까? 정의되지 않은 상수에 대해 아래의 코드를 실행하면 모든 종류의 오류 대신 "테스트"화면에 표시됩니다. php.ini 파일에 설정이 잘못되었거나 새로운 것이 있습니까? 임 실행 PHP는 PHP의 기본 정의되지 않은 상수에 대한 있습니다 5.3PHP 상수는 설정되지 않았지만 화면에 계속 인쇄됩니다.

<?php 
echo TEST; 
?> 

답변

2

표시되지 않도록 설정할 수있는 알림 (E_NOTICE)이 표시됩니다. 기본적으로 상수가 정의되어 있지 않으면 리터럴 값이 표시됩니다.

0

은 자동으로 그 이름을 나타내는 문자열로 대체합니다. 나는 그것이 php.ini에서 비활성화 될 수 있다고 생각하지만 어떤 경우에도 의존해서는 안된다.

0

이것은 단지 경고 또는 예고 일뿐입니다. 확실하지 않습니다. 정의되지 않은 상수의 사용은 금지되어 있지 않습니다. 그러나 echo FOO BAR;은 실제로는 실패합니다. echo "FOO" "BAR";과 같습니다.

error_reporting 설정에 경고 또는주의 사항이 표시되지 않거나 display_errors 설정이 false으로 설정되어 있습니다.

이 정보에 의존해서는 안됩니다.

0

다른 언급과 마찬가지로 정의되지 않은 상수를 참조하는 것은 PHP가 스크립트 실행을 중지하게하는 치명적인 오류가 아니라 공지입니다. PHP는 상수 이름을 문자열로 변환하고 계속 이동합니다. error_reporting 설정에 따라 PHP에서 메시지를 인쇄 할 수도 있고 인쇄하지 않을 수도 있습니다. PHP가주의 메시지를 출력하기 전에 최소한 8 (E_NOTICE)으로 설정해야합니다. 원하는 것은 정의되지 않은 상수 상황을 잡아서 처리하는 것입니다 (예 : PHP에서 메시지를 인쇄하고 나가기).

if (defined('TEST')) { 
    echo TEST; 
} else { 
    // error handling here 
} 
관련 문제