为什么PHP的"trigger_error"会返回true?

Rhy*_*hys 1 php error-handling exception-handling exception

我使用自定义函数的错误处理,并注意所有三个用户错误类型(注意,警告和错误)都返回true.

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

return trigger_error('Error notice here');
Run Code Online (Sandbox Code Playgroud)

问题是,错误返回true.虽然不是所有的函数返回真正的成功时,在我看来,这样可以在未来使用(因此,将是一个错误).

有没有理由为什么这个函数会返回true,或者我是否遵循了退出无效函数的错误做法?

我知道解决方案可能是:

trigger_error('Error notice here');
return false;
Run Code Online (Sandbox Code Playgroud)

但我认为会有更优雅的方法.如果没有,希望对最佳实践有所了解.

Dav*_*dom 5

它返回TRUE是因为触发错误的操作成功.FALSE如果您为第二个参数指定了无效的错误类型,那就是它.

如果你想TRUE在一行中返回并触发错误(顺便说一下,我看不到它的方式),你可以这样做:

return !trigger_error('Error notice here');
Run Code Online (Sandbox Code Playgroud)

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

如果要退出函数并显示可在代码中处理的错误消息,则应使用异常.虽然这些在程序功能的背景下是否有意义是值得商榷的.