我目前正在php 5.4上运行一个站点,在此之前我在5.3.8上运行了我的站点。不幸的是,php 5.4结合了E_ALL
和E_STRICT
,这意味着我以前的设置error_reporting
现在无法正常工作。我以前的值是E_ALL & ~E_NOTICE & ~E_STRICT
我应该一次启用一个值吗?
我有太多错误,文件中包含太多代码供我修复。
我目前正在php 5.4上运行一个站点,在此之前我在5.3.8上运行了我的站点。不幸的是,php 5.4结合了E_ALL
和E_STRICT
,这意味着我以前的设置error_reporting
现在无法正常工作。我以前的值是E_ALL & ~E_NOTICE & ~E_STRICT
我应该一次启用一个值吗?
我有太多错误,文件中包含太多代码供我修复。
Answers:
正如评论者所言,最好的选择是修复错误,但由于时间或知识有限,并非总是可能的。在您的php.ini中进行更改
error_reporting = E_ALL
至
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT
如果您无权访问php.ini,则可以将其放在.htaccess文件中:
php_value error_reporting 30711
这是E_ALL值(32767)并除去E_STRICT(2048)和E_NOTICE(8)值。
如果您无权访问.htaccess文件或未启用该文件,则可能需要将其放在从浏览器调用加载的所有脚本的PHP部分的顶部:
error_reporting(E_ALL & ~E_STRICT & ~E_NOTICE);
其中之一应该可以帮助您使用该软件。声明和严格的内容是指示问题或潜在问题的指示器,并且您可能会发现某些代码在PHP 5.4中无法正常工作。
只有将PHP Server API用作Web服务器Apache的模块时,.htaccess php_value才有效。使用IfModule语法:
# PHP 5, Apache 1 and 2.
<IfModule mod_php5.c>
php_value error_reporting 30711
</IfModule>
如果您使用PHP Server API CGI / FastCGI,请使用
ini_set('error_reporting', 30711);
要么
error_reporting(E_ALL & ~E_STRICT & ~E_NOTICE);
在您的PHP代码或PHP配置文件.user.ini中| php.ini修改:
error_reporting = E_ALL & ~E_STRICT & ~E_NOTICE
在您的虚拟主机上,服务器级别。
当我
在PHP代码中的某个位置的两个位置同时设置error_reporting时,它为我工作
ini_set('error_reporting', 30711);
并在.htaccess文件中
php_value error_reporting 30711