首頁 >後端開發 >PHP問題 >php的報錯等級有哪些?

php的報錯等級有哪些?

青灯夜游
青灯夜游原創
2020-04-25 17:21:102961瀏覽

下面這篇文章就來跟大家介紹一下php報錯等級。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有幫助。

php的報錯等級有哪些?

error_reporting()

#用於設定 PHP 的報錯層級並傳回目前層級。 (PHP 4, PHP 5)

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

PHP 有許多錯誤級別,使用該函數可以設定在腳本運行時的級別。

如果沒有設定可選參數 level, error_reporting() 僅會傳回目前的錯誤報告等級。

參數level

新的 error_reporting 等級。可以是一個位元遮罩也可以是一個已命名的常數。

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

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

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

#常見:總共大概15個

php的報錯等級有哪些?

## 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(&#39;error_reporting&#39;, 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,化成十進位就是307111111101111110111,化成十進位就是30711111111可以看到可以看到可以看到ALL_E_f並不是顯示了所有的錯誤,第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的報錯等級有哪些?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn