通常我E_ALL
会看到PHP可能会对我的代码说些什么来尝试改进它.
我刚刚注意到一个错误常数E_STRICT
,但从未使用或听说过它,这是一个用于开发的好设置吗?手册说:
运行时通知.允许PHP建议对代码进行更改,以确保代码的最佳互操作性和向前兼容性.
所以我想知道我是否使用最好的error_reporting
水平E_ALL
或者是否会E_STRICT
是最好的?或者还有其他我尚未学习的组合吗?
在PHP 5中,所涵盖的内容E_STRICT
未被涵盖E_ALL
,因此为了获得最多信息,您需要将它们组合在一起:
error_reporting(E_ALL | E_STRICT);
在PHP 5.4中,E_STRICT
将包含在内E_ALL
,因此您可以使用E_ALL
.
你也可以使用
error_reporting(-1);
这将始终启用所有错误.哪个在语义上更正确:
error_reporting(~0);
在php.ini中使用以下内容:
error_reporting = E_ALL | E_STRICT
此外,你应该安装Xdebug,它可以突出你的错误明亮的颜色和打印有用的详细信息.
永远不要在代码中出现任何错误或通知,即使它是无害的.
在我看来,你在开发阶段设置错误报告级别越高越好.
在实时环境中,您需要稍微(但只是略微)缩小的设置,但是您希望它们记录在用户无法看到的某个位置(我更喜欢syslog
).
http://php.net/error_reporting
E_ALL | E_STRICT
用于5.2.0之前的PHP开发.
5.2介绍E_RECOVERABLE_ERROR
和5.3介绍E_DEPRECATED
和E_USER_DEPRECATED
.如果你正在运行其中一个版本,你可能想要打开它们.
如果你想使用魔术数字,你可以将error_reporting
值设置为某个相当高的值2^n-1
- 比如说,16777215
这实际上只是打开它们之间的所有位1..n
.但我不认为使用魔术数字是个好主意......
在我看来,由于E_ALL
并不是真的全部,PHP已经放弃了一些球.但显然它将在PHP 6中得到修复......