1

我对自定义函数使用错误处理,并注意到所有三种用户错误类型(NOTICE、WARNING 和 ERROR)都返回true

我使用trigger_error函数在处理错误时转义函数(例如插入无效数据)。我认为逃避该功能的最佳方法是使用:

return trigger_error('Error notice here');

问题是,错误返回true。尽管并非我的所有函数都在成功时返回true,但在我看来,将来可以使用它(因此,false表示错误)。

这个函数返回true有什么原因,还是我在退出无效函数时遵循了不好的做法?

我知道解决方案可能是:

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

但我认为会有更优雅的方法。如果没有,希望对最佳实践有一些见解。

4

2 回答 2

5

它返回TRUE是因为触发错误的操作成功。FALSE如果您为第二个参数指定了无效的错误类型,则可能是这样。

如果您想TRUE在一行中返回并触发错误(顺便说一句,这在我看来毫无意义),您可以这样做:

return !trigger_error('Error notice here');

顺便说一句,如果你触发了一个E_USER_ERROR我怀疑评估返回值的代码是否会到达,因为除非你注册了一个错误处理程序来捕获它,否则这个错误将是致命的。

如果要退出带有可以在代码中处理的错误消息的函数,则应使用Exception。尽管这些在程序功能的背景下是否有意义是值得商榷的。

于 2012-09-11T12:58:32.387 回答
1

您询问了比trigger_error().

我建议更优雅的方法可能是抛出异常而不是触发错误。

于 2012-09-11T13:42:11.600 回答