php的報錯級別有哪些?

2020-07-16 10:06:38
下面本篇文章就來給大家介紹一下php報錯級別。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有所幫助。

error_reporting()

用於設定 PHP 的報錯級別並返回當前級別。(PHP 4, PHP 5)

函數能夠在執行時設定 error_reporting 指令。

PHP 有諸多錯誤級別,使用該函數可以設定在指令碼執行時的級別。

如果沒有設定可選引數 level, error_reporting() 僅會返回當前的錯誤報告級別。

引數level

新的 error_reporting 級別。 可以是一個位掩碼也可以是一個已命名的常數。

建議使用已命名的常數,以確保相容將來的版本。 由於錯誤級別的新增、整數取值範圍的增加,

較久的基於整數的錯誤級別不會總是和預期的表現一致。

level 可能的值(php中的報錯級別)

常見:總共大概15個

1.png

15個正好對應二進位制的15位。

需要注意的是, 上述表中的欄位, 不是一成不變的, 不同的PHP版本, 值可能會不同, 詳細的請參考 php預定義常數

任意數目的以上選項都可以用「或」來連線(用 OR 或 |),這樣可以報告所有需要的各級別錯誤。

例如,下面的程式碼關閉了使用者自定義的錯誤和警告,執行了某些操作,然後恢復到原始的報錯級別:

例:

<?php
     error_reporting(0);                //禁用錯誤報告
     error_reporting(E_ERROR | E_WARNING | E_PARSE);//報告執行時錯誤
     error_reporting(E_ALL);            //報告所有錯誤
     error_reporting(E_ALL ^ E_NOTICE); //除E_NOTICE報告所有錯誤,是在php.ini的預設設定
     error_reporting(-1);               //報告所有 PHP 錯誤
     error_reporting(3);                //不報E_NOTICE
     error_reporting(11);               //報告所有錯誤
     ini_set('error_reporting', E_ALL); // 和 error_reporting(E_ALL); 一樣
     error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);//表示php錯誤,警告,語法錯誤,提醒都返錯。
?>

換算關係:

E_All: 十進位制為30719,換成二進位制為 111011111111111

E_NOTICE:十進位制為8,換成二進位制為 1000

~E_NOTICE:對E_NOTICE進行取反操作, 變成0111

E_ALL & ~E_NOTICE::E_ALL和 ~E_NOTICE進行與操作,變成111011111110111,化成十進位制就是30711

可以看到E_ALL並不是顯示了所有的錯誤,第12位元為0, 這一位的權重為2的11次方, 為2048,其實就是E_STRICT的值,所以E_ALL是顯示除E_STRICT的所有錯誤級別。

E_ALL & ~E_NOTICE 的二進位制可以看出,從右至左,第4位元和第12位元為0,第4位元的權重為2的3次方,為8,就是E_NOTICE的值,所以是顯示除了E_STRICT和E_NOTICE的所有錯誤。

更多相關知識,請關注 PHP中文網!!

以上就是php的報錯級別有哪些?的詳細內容,更多請關注TW511.COM其它相關文章!