我对自定义函数使用错误处理,并注意到所有三种用户错误类型(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。尽管在程序功能的上下文中这些是否有意义尚有争议。
关于php - 为什么PHP的 “trigger_error”返回true?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12370221/