php錯誤層級的設定方法_PHP教程

來源:互聯網
上載者:User
PHP在運行時, 針對嚴重程度不同的錯誤,會給以不同的提示。

eg:在$a沒聲明時,直接相加,值為NULL,相加時當成0來算.但是,卻提示NOTICE,即注意.

我們在開發中, 為了程式的規範性,把報錯層級,調的比較高NOTICE層級的也報出來,有助於我們快速定位錯誤和代碼規範,但是,在產品上線後,網站運營過程中,就不宜報這麼多錯.

1:這種錯誤給客戶的印象不好
2:在報錯時,把網站的絕對路徑,如D:\www\1015都報出來了.增大被攻擊的風險
因此,在網站上線後,就應該讓報錯級降低,少報錯甚至不報.

修改報錯層級:

    1: php.ini裡修改error_reporting 選項
    2: 可以在php頁面裡,用error_reporting()函數來修改

錯誤層級用2進位的值來表示的: 1111 1111 1111 111從左至右,每位上的1,代表一種錯誤層級

  fatal error致命錯誤: 0000 0000 0000 001 開啟 1
  warning 警告錯誤 : 0000 0000 0000 010 開啟 2
  NOTICE 警告 : 0000 0000 0001 000 開啟 8


eg:

     都報出來: error_reporting(11);
     不要報NOTICE: error_reporting(3);
     任何錯誤都不報: error_reporting(0);

系統為我們把各個層級的值,用系統常量代替了.

    E_ERROR 1
    E_WARNING 2
    E_NOTICE 8

報所有錯誤: error_reporting(E_ALL);

除了NOTICE,其他都報: error_reporting(E_ALL & ~E_NOTICE);

  在開發中,報錯層級高一點,在上線產品中,報錯層級要低:+

複製代碼 代碼如下:
  define('DEBUG',true); // 在開發時,聲明一個DEBUG模式
    if(defined('DEBUG')) { //檢測到處於開發模式
    error_reporting(E_ALL);
    } else {
    error_reporting(0);
    }

http://www.bkjia.com/PHPjc/327610.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/327610.htmlTechArticlePHP在運行時, 針對嚴重程度不同的錯誤,會給以不同的提示。 eg:在$a沒聲明時,直接相加,值為NULL,相加時當成0來算.但是,卻提示NOTICE,即注意...

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.