在PHP 5.4中禁用严格的标准
我目前正在php 5.4上运行一个站点,在此之前我正在5.3.8上运行我的站点。 不幸的是,php 5.4结合了E_ALL和E_STRICT ,这意味着我以前的error_reporting设置现在不起作用。 我以前的值是E_ALL & ~E_NOTICE & ~E_STRICT我应该只是一次启用一个值? 
我有太多的错误和文件包含太多的代码,我要修复。
正如评论者所说, 最好的select是纠正错误,但是时间或知识有限,这并不总是可能的。 在你的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中无法正常工作。
希望这可以帮助。
.htaccess php_value只有在使用PHP Server API作为Web服务器Apache的模块时才起作用。 使用IfModule语法:
 # PHP 5, Apache 1 and 2. <IfModule mod_php5.c> php_value error_reporting 30711 </IfModule> 
如果您使用PHP服务器API CGI / FastCGI使用
 ini_set('error_reporting', 30711); 
要么
 error_reporting(E_ALL & ~E_STRICT & ~E_NOTICE); 
在您的PHP代码或PHPconfiguration文件.user.ini |中 php.ini修改:
 error_reporting = E_ALL & ~E_STRICT & ~E_NOTICE 
在您的虚拟主机,服务器级别。
它为我工作,当我在同一时间在两个地方设置error_reporting
在PHP代码中的某处
 ini_set('error_reporting', 30711); 
和.htaccess文件中
 php_value error_reporting 30711 
如果您还需要禁用E_DEPRACATED,请使用:
 php_value error_reporting 22527 
在我的情况下,CMS Made Simple正在抱怨“在error_reporting中启用了E_STRICT”以及“E_DEPRECATED已启用”。 将这一行添加到.htaccess解决了两个错误configuration。
开头,你可能需要重新启动LAMP,Apache或者你使用的任何东西来使其生效。 在这个问题上绞尽脑汁,似乎在服务重新启动之前似乎没有任何影响,大概是因为该网站是caching的。