2012-06-19 69 views
0

trigger_error()上使用自定義錯誤級別是否是一種好習慣?trigger_error()的自定義錯誤級別

例如,我可以這樣做:

define('E_MY_LEVEL', 3); 
... 
trigger_error('Hey this error occurs every time!', E_MY_LEVEL); 

?考慮到3不是PHP Error level value,所以它不會與其他級別發生衝突。

(我想這樣做,這樣我就不必創建需要其他代碼,而不是我已經寫在關聯set_error_handler()error_handler功能我的一個其他功能。)

+0

如果有效,爲什麼不呢? – madfriend

+0

如果你的錯誤處理程序是一個自定義錯誤處理程序,並知道所有分配的魔術值,不檢查傳入的整數作爲位字段,那麼是的,這是可行的。 – mario

回答

1

很難說這是否是個好習慣與否,但3確實存在,作爲一個PHP錯誤水平值 -

error_reporting(E_ERROR | E_WARNING); // E_ERROR | E_WARNING = 3 

而且不知道你的觸發器()函數是什麼,trigger_error需要在E_USER範圍內的誤差水平。 ..也許最好使用E_USER_NOTICE? (1024)

+0

我輸錯了。我的意思是'trigger_error()'原生的。但是,是的,你是對的,3我是一個錯誤級別的值。也許我可以使用負值? – Shoe

1

基本的E_XXX錯誤代碼標誌通常基於兩個冪,例如1。 1 2 4 8 16 32等

如果您發現兩個未使用的權力,您可以使用該權力。

因爲3 = 1 + 2是兩個冪的和,所以它計數爲使用兩個標誌E_ERROR | E_WARNING。