我对自定义函数使用错误处理,并注意所有三种用户错误类型(NOTICE,WARNING和ERROR)都返回 true 。
我使用 trigger_error 函数在错误处理函数时转义函数(例如插入了无效数据)。我认为逃避该功能的最佳方法是使用:
return trigger_error('Error notice here');
问题是,错误返回 true 。虽然我的所有函数在成功时都不会返回 true ,但在我看来,将来可能会使用它(因此, false 会表示错误)。
为什么这个函数会返回 true ,还是我在退出无效函数时遵循不良做法?
我知道解决方法可能是:
trigger_error('Error notice here');
return false;
但我认为会有更优雅的方法。如果没有,希望对最佳实践有所了解。
答案 0 :(得分:5)
返回TRUE
因为触发错误的操作成功。如果您为第二个参数指定了无效的错误类型,那么它将是FALSE
。
如果你想在一行中返回TRUE
并触发错误(顺便说一下,我看不出来的话),你可以这样做:
return !trigger_error('Error notice here');
顺便说一句,如果你触发E_USER_ERROR
,我怀疑是否会达到评估返回值的代码,因为除非你注册了一个错误处理程序来捕获它,否则错误将是致命的。
如果要退出函数并显示可在代码中处理的错误消息,则应使用Exception。虽然这些在程序功能的背景下是否有意义是值得商榷的。
答案 1 :(得分:1)
您询问的解决方案比trigger_error()
更优雅。
我建议更优雅的方法可能是抛出异常而不是触发错误。