如何消除php5严格标准错误?

2021-12-21 00:00:00 php cakephp cakephp-1.3

将我的 PHP 升级到 5.4.3(WAMP 服务器 2.2)后,我在 CakePHP 1.3 中制作的网络应用程序在我的索引中显示以下错误:

After upgrading my PHP to 5.4.3 (WAMP server 2.2), my web app made in CakePHP 1.3, is showing the following errors in my index:

严格标准:重新定义类的已定义构造函数对象在 C:...cakecakelibsobject.php 第 63 行

Strict standards: Redefining already defined constructor for class Object in C:...cakecakelibsobject.php on line 63

严格的标准:非静态方法 Configure::getInstance() 应该不会在 C:...cakecakeootstrap.php 第 49 行中静态调用

Strict standards: Non-static method Configure::getInstance() should not be called statically in C:...cakecakeootstrap.php on line 49

我发现有些人通过将 php.ini 中的 error_reporting 设置为 E_ALL & 来解决这个问题.~E_STRICT.

I've found that some people solve this problem by setting the error_reporting in php.ini to E_ALL & ~E_STRICT.

我在计算机上的两个 php.ini 文件(C:wampinphpphp5.4.3 和 C:wampinapacheapache2.4.2in)中都这样做了,但没有解决问题.

I did that in both php.ini files (C:wampinphpphp5.4.3 and C:wampinapacheapache2.4.2in) present on my computer but it didn't solve the problem.

我也尝试将 php_value error_reporting 6143 放入 C:...cake.htaccess 但没有成功.

I also tried to put php_value error_reporting 6143 in C:...cake.htaccess but without success.

有谁知道我该如何解决这个问题?由于 firebird,我无法升级我的 CakePHP.

Does anybody know how can I solve this? I can't upgrade my CakePHP because of firebird.

推荐答案

php 5.4 的变化之一是 E_STRICT 现在是 E_ALL 的一部分

One of the changes in php 5.4 is that E_STRICT is now part of E_ALL

因此,在您的/cake/bootstrap.php 中,您可以从错误报告中删除 E_STRICT:

So, in your /cake/bootstrap.php you could remove the E_STRICT from your error reporting:

error_reporting(E_ALL ^ E_STRICT);

并再次兼容 5.4 之前的版本.

and be compatible again with before 5.4 versions.

相关文章