[英]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.