在 C 或 Perl 這些程式語語, 在使用變數前需要先進行宣告, 而 PHP 則不需要宣告變數, 可以直接使用變數。
PHP 不需要宣告變數仍可執行, 只要在某些主機會出現 Warning, 例如:
1 2 3 4 5 |
<?php $new_value = $test + 100; echo $new_value; ?> |
上面程式碼並未宣告變數 $test, 所以會出現錯誤 “Notice: Undefined variable: test”, 但由於這個只是 warning, 所以程式會繼續執行, 除了顯示錯 warning 外, 也會顯示 100 的執行結果:
Notice: Undefined variable: test in /var/www/html/test.php on line 2
100
100
如果在 PHP 程式碼的層面解決, 方法是在使用 $test 變數前先宣告, 由於 PHP 會自動轉換變數類型, 所以以下兩種方法也可以:
$test = 0;
或
$test = “”;
例如改成這樣便不會出錯 warning 了:
1 2 3 4 5 6 |
<?php $test = 0; $new_value = $test + 100; echo $new_value; ?> |
另一個 warning 是 “Notice: Undefined index”, 這個跟未宣告變數差不多, 只是今次沒有宣告的是陣列的內容, 解決方法跟上面一樣。
如果不想每個 PHP 檔案一同修改, 也可以修改 php.ini, 開啟檔案 php.ini, 找到 error_reporting, 改成這樣:
error_reporting = E_ALL & ~E_NOTICE
或者找到 display_errors, 將它設定為 Off:
display_errors = Off
上面兩個設定只要改其中一個便可以, 然後重新啟動網頁伺服器便會生效。但上面兩個設定只建議在生產環境使用, 如果在測試或開發環境上, 打開對程式碼除錯會更方便。