检测(在自定义错误处理程序中)如果PHP错误实际上被@
语境:
我有一个应用程序的三个环境:dev(本地),测试/分段(prod服务器),生产.应用程序知道哪个是哪个.报告和生产的错误报告为0,所以不会显示错误.在开发我想要立即看到错误,我想看到他们发生的地方,所以不在一些日志,但代码的结果. 但是,我不想看到我明确地用@禁止的错误.我一直在使用fsockopen,当它无法连接时会发出警告.我接受无连接,但不想看到错误.甚至没有开发商. 即使在代码中被抑制,所有的错误仍然通过自定义错误处理程序. 我的错误处理程序只有4个参数:errno,error,file,line.从那些我不能看到错误是否最初被抑制.如果我可以看到那里,我可以选择是否打印错误(现在我一直在做,如果env = dev). 有任何想法吗?或者也许在如何完全忽略被抑制的错误(以至于他们甚至没有达到自定义的错误处理程序)?
在
set_error_handler 手册页中有一个提示.
当您使用错误控制运算符@时,发生的是这样的: >错误报告设置为0(无错误) – error_reporting(0) 上面略有混淆的引用是指error_reporting返回当前设置的事实.如果您使用控制操作符抑制了错误,则调用error_reporting()将返回0. 因此,如果你知道你把它设置为非零(即报告一些错误),并返回零,你知道错误被抑制了. 如果您检测到抑制错误并想知道它是什么,您可以在变量 请注意,错误控制运算符会导致很多开销,因为它每次使用时会更改错误报告级别两次.它会减慢你的脚本. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |