在PHP 5.4中禁用严格标准

ico*_*ade 95 php error-handling

我目前在php 5.4上运行一个站点,在此之前我在5.3.8上运行我的站点.不幸的是,PHP 5.4联合收割机E_ALLE_STRICT,这意味着我以前的设置error_reporting现在无法正常工作.我之前的价值是E_ALL & ~E_NOTICE & ~E_STRICT我应该一次启用一个值吗?

我有太多错误,文件中包含太多代码供我修复.

Dav*_*ton 138

正如评论者所说,最好的选择是修复错误,但是由于时间或知识有限,这并不总是可行的.在你的php.ini更改

error_reporting = E_ALL
Run Code Online (Sandbox Code Playgroud)

error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT
Run Code Online (Sandbox Code Playgroud)

如果您无法访问php.ini,则可以将其放在.htaccess文件中:

php_value error_reporting 30711
Run Code Online (Sandbox Code Playgroud)

这是E_ALL值(32767)并删除E_STRICT(2048)和E_NOTICE(8)值.

如果您无权访问.htaccess文件或未启用它,则可能需要将此文件放在从浏览器调用加载的任何脚本的PHP部分的顶部:

error_reporting(E_ALL & ~E_STRICT & ~E_NOTICE);
Run Code Online (Sandbox Code Playgroud)

其中一个应该可以帮助您使用该软件.虽然通知和严格的东西是问题或潜在问题的指标,你可能会发现一些代码在PHP 5.4中无法正常工作.

希望这可以帮助.

  • 我正在使用PHP 5.4.5并且我尝试了以上所有但我无法禁用严格通知:(任何其他想法? (10认同)
  • @roko是否有可能你的代码在某处覆盖?在php.ini中禁用它后我仍然看到严格的错误,然后我意识到它只适用于某些使用Drupal的网站,其中的值是在代码中设置的 (4认同)
  • +1用简单的答案回答一个简单的问题,而不会变成StackOverflow Smuglord™. (4认同)
  • 您可以尝试将&~E_DEPRECATED与error_reporting()中的其他部分一起放入.你看到了什么消息? (2认同)