2010-01-29 101 views
0

是不是PHP假設顯示一個錯誤是你調用一個不存在的CONSTANT?當我爲下面的代碼運行未定義的常量時,它會在屏幕上顯示「TEST」而不是任何類型的錯誤。我可以在我的php.ini文件中設置錯誤,或者這是新的東西嗎?進出口運行PHP 5.3PHP CONSTANT沒有設置,但仍然打印一些東西來屏幕?

<?php 
echo TEST; 
?> 

回答

2

它應該顯示您可能沒有設置爲可見的通知(E_NOTICE)。默認情況下,如果未定義常量,則顯示文字值。

0

有PHP中的默認的一個未定義的常量由代表其名的字符串被默。我認爲它可以在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 
} 
相關問題