是不是PHP假設顯示一個錯誤是你調用一個不存在的CONSTANT?當我爲下面的代碼運行未定義的常量時,它會在屏幕上顯示「TEST」而不是任何類型的錯誤。我可以在我的php.ini文件中設置錯誤,或者這是新的東西嗎?進出口運行PHP 5.3PHP CONSTANT沒有設置,但仍然打印一些東西來屏幕?
<?php
echo TEST;
?>
是不是PHP假設顯示一個錯誤是你調用一個不存在的CONSTANT?當我爲下面的代碼運行未定義的常量時,它會在屏幕上顯示「TEST」而不是任何類型的錯誤。我可以在我的php.ini文件中設置錯誤,或者這是新的東西嗎?進出口運行PHP 5.3PHP CONSTANT沒有設置,但仍然打印一些東西來屏幕?
<?php
echo TEST;
?>
它應該顯示您可能沒有設置爲可見的通知(E_NOTICE)。默認情況下,如果未定義常量,則顯示文字值。
有PHP中的默認的一個未定義的常量由代表其名的字符串被默。我認爲它可以在php.ini中禁用,但在任何情況下都不應該依賴它。
這只是一個警告或通知,我不太確定。不禁止使用未定義的常量。但echo FOO BAR;
確實會失敗,因爲它相當於echo "FOO" "BAR";
。
您的error_reporting設置不顯示警告或通知,或者您的display_errors設置設置爲false
。
你不應該依賴這個。
正如其他人所說的,引用一個未定義的常量是一個通知,而不是致命錯誤(PHP會停止運行該腳本),並且PHP會將常量名稱轉換爲字符串並繼續前進。根據您的error_reporting設置,PHP可能會或可能不會打印消息。在PHP打印通知消息之前,您需要至少將其設置爲8 (E_NOTICE)。如果您想要捕獲未定義的常量情況並處理它(例如,讓PHP打印消息並退出),請使用如下的函數:
if (defined('TEST')) {
echo TEST;
} else {
// error handling here
}