在 PHP 5.4 中禁用严格标准

2022-08-30 07:46:40

我目前在php 5.4上运行一个网站,在此之前,我在5.3.8上运行我的网站。不幸的是,php 5.4 结合了 和 ,这意味着我之前的设置现在不起作用。我之前的值为“我应该一次只启用一个值吗?E_ALLE_STRICTerror_reportingE_ALL & ~E_NOTICE & ~E_STRICT

我有太多的错误,文件包含太多的代码,我无法修复。


答案 1

正如评论者所说,最好的选择是修复错误,但是在有限的时间或知识下,这并不总是可能的。在你的 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中无法正常工作。


答案 2

.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 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

在虚拟主机、服务器级别上。


推荐