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

2022-08-30 16:34:14

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

严格标准:在第 63 行重新定义 C:...\cake\cake\libs\object.php中已定义的类 Object 构造函数

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

我发现有些人通过将php中的.ini设置为.来解决此问题。error_reportingE_ALL & ~E_STRICT

我在计算机上的两个php.ini文件(C:\wamp\bin\php\php5.4.3和C:\wamp\bin\apache\apache2.4.2\bin)中都这样做了,但它没有解决问题。

我也试图放入C:...\cake.htaccess,但没有成功。php_value error_reporting 6143

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


答案 1

php 5.4 中的一个变化是E_STRICT现在是E_ALL

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

error_reporting(E_ALL ^ E_STRICT);

并再次与之前的5.4版本兼容。


答案 2

如果您想更新蛋糕版本,请不要修改蛋糕核心文件,而是进入Config / core.php文件并查找错误处理程序配置:

Configure::write('Error', array(
    'handler' => 'ErrorHandler::handleError',
    'level' => E_ALL & ~E_DEPRECATED,
    'trace' => true
));

并将“级别”替换为:

...
'level' => E_ALL & ~E_STRICT & ~E_DEPRECATED,
...

推荐