php7新增不會報undefined解決方法:1、透過修改php.ini檔案來改變PHP的錯誤報告等級;2、在程式碼中使用error_reporting函數來動態地設定錯誤報告等級;3、使用isset和empty等函數來檢查變數是否已定;4、使用PHP的嚴格模式來強制要求變數在使用之前必須先聲明,這樣可以更早發現和修復潛在的問題。
本文的操作環境:Windows10系統、PHP7.4版本、Dell G3電腦。
在PHP 7中,當我們存取一個未定義的變數或呼叫未定義的函數時,不再報錯,而是會拋出一個E_NOTICE等級的錯誤,並且傳回一個NULL值。這種行為的改變是為了提高程式碼的健全性和可讀性。
然而,對於某些開發者來說,他們可能希望在PHP 7中仍然能夠得到未定義變數的報錯,以便及時發現和修復潛在的問題。幸運的是,PHP 7提供了一些選項來控制這種行為。
1、透過修改php.ini檔案來改變PHP的錯誤報告層級。
在php.ini檔案中,可以找到一個叫做error_reporting的設定項,它決定了PHP應該要報告哪些錯誤。預設情況下,這個配置項目的值是E_ALL & ~E_NOTICE,這表示PHP會報告所有的錯誤,除了E_NOTICE等級的錯誤。我們可以將其修改為E_ALL來啟用所有錯誤的報告,包括未定義變數的錯誤。
2、在程式碼中使用error_reporting函數來動態地設定錯誤報告層級。
例如,我們可以在程式碼的開頭使用以下語句來啟用所有錯誤的報告:
error_reporting(E_ALL);
3、使用isset和empty等函數來檢查變數是否已定義。
這些函數可以幫助我們在存取變數之前進行判斷,避免使用未定義的變數。
4、使用PHP的嚴格模式(strict mode)來強制要求變數在使用前必須先宣告。
嚴格模式可以透過在程式碼的開頭新增以下語句來啟用:
declare(strict_types=1);
在嚴格模式下,PHP會在存取未定義變數時拋出錯誤,且不會自動將其初始化為NULL。這樣可以幫助我們更早發現和修復潛在的問題。
總結
如果我們希望在PHP 7中仍然能夠得到未定義變數的報錯,我們可以透過修改php.ini檔案或使用error_reporting函數來改變錯誤報告級別,使用isset和empty等函數來檢查變數是否已定義,以及啟用嚴格模式來強制要求變數的聲明。這些方法可以幫助我們在開發過程中及時發現和修復潛在的問題,並提高程式碼的健全性和可讀性。
以上是php7新增不會報undefined怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!