搜索
熱搜: 活動 交友 discuz
查看: 1472|回復: 0
打印 上一主題 下一主題

PHP設定錯誤回報等級

[複製鏈接]
跳轉到指定樓層
1#
發表於 2007-7-16 14:22:49 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
開始寫PHP以來,就對一個小地方很感冒,就是PHP並沒有禁止使用未宣告或初始化過的變數,也沒有提出警告。大概是因為自己也算是個容易粗心大意的人吧,所以有時候會不小心將變數名稱key錯了或怎麼的,整個程式便跑出了奇怪、非預期的結果。這時要debug是非常吃力的一件事情,不禁讓我懷念起perl的use strict。
不過後來發現,這其實是PHP預設將注意信息(NOTICE)隱藏起來而已,因為會引起這些注意信息的錯誤(例如某變數未初始化),並不會導致致命的結果,所以我們可以用error_reporting()函式來自訂錯誤回報的等級。
一般PHP預設值是7或2039,也就是E_ALL & ~E_NOTICE(php.ini的寫法) 或 E_ALL ^ E_NOTICE(error_reporting函式內參數的寫法,我沒試過能不能混用,我懶嘛)。因此若是在程式內設定error_reporting(E_ALL),便可以取得所有的錯誤 /警告 /注意信息,對於神經比較大條的程式設計師來說,debug就方便多了。當然程式完成之後,你也可以用error_reporting(0)來抑制所有錯誤警告,畢竟這些訊息是不需要給使用者看到的吧(呃,當然,如果你確定程式百分之百不會出錯的話)。
p.s.
  • 在參數的使用上,應該儘可能使用E_ALL、E_WARNING等常數,盡量不要使用數字,以避免新版本的數字跟常數的定義規則發生變化。
  • 當然,使用ini_set(’error_reporting’,E_ALL) 也能達到與error_reporting(E_ALL) 一樣的效果,不過為什麼要自找麻煩呢?




[ 本帖最後由 f66666602 於 2007-7-31 21:12 編輯 ]
您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

本論壇為非營利之網路平台,所有文章內容均為網友自行發表,不代表論壇立場!若涉及侵權、違法等情事,請告知版主處理。


Page Rank Check

廣告刊登  |   交換連結  |   贊助我們  |   服務條款  |   免責聲明  |   客服中心  |   中央分站

手機版|中央論壇

GMT+8, 2026-6-28 08:55 , Processed in 0.034441 second(s), 16 queries .

Powered by Discuz!

© 2005-2015 Copyrights. Set by YIDAS

快速回復 返回頂部 返回列表