簡體   English   中英

為什么PHP的“ trigger_error”返回true?

[英]Why does PHP's “trigger_error” return true?

我對自定義函數使用了錯誤處理,並注意到所有三種用戶錯誤類型(NOTICE,WARNING和ERROR)都返回true

當錯誤地處理了某個函數(例如,插入了無效數據)時,我使用了trigger_error函數來轉義該函數。 我認為逃避該功能的最佳方法是使用:

return trigger_error('Error notice here');

問題是,錯誤返回true 盡管並非所有函數在成功時都返回true ,但在我看來,以后可以使用它(因此, false表示錯誤)。

為什么有這個函數返回true的原因,或者我在退出無效函數時遵循錯誤的做法?

我知道一個解決方案可能是:

trigger_error('Error notice here');
return false;

但是我認為會有一種更優雅的方法。 如果沒有,希望對最佳實踐有所了解。

因為觸發錯誤的操作成功,所以它返回TRUE 如果您為第二個參數指定了無效的錯誤類型,則為FALSE

如果要返回TRUE並在一行中觸發錯誤(順便說一句,我看不到它),則可以執行以下操作:

return !trigger_error('Error notice here');

順便說一句,如果觸發E_USER_ERROR我懷疑是否會到達評估返回值的代碼,因為除非注冊了錯誤處理程序以捕獲該錯誤,否則該錯誤將是致命的。

如果要退出帶有錯誤消息且可以在代碼中處理的函數,則應使用Exception 盡管在程序功能的上下文中這些是否有意義尚有爭議。

您詢問的是比trigger_error()更優雅的解決方案。

我建議一種更優雅的方法可能是引發異常而不是觸發錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM