我为自定义函数使用错误处理,并注意到所有三种用户错误类型(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()
更优雅的解决方案。
我建议一个更优雅的方法可能是抛出异常,而不是触发错误。