使用已弃用的函数更新到PHP 5.3警告已禁用

rob*_*lls 5 php migration deprecated

我非常希望将我们的许多服务器更新为PHP 5.3.这将为Zend Framework 2以及明显的性能更新做好准备.不幸的是,我在这些服务器上有大量遗留代码,这些代码及时修复,但在迁移之前无法修复.我正在考虑更新但禁用除了几个开发站点之外的所有开发站点上的已弃用功能错误,我可以通过更新旧代码开始工作.

error_reporting(E_ALL ^ E_DEPRECATED);
Run Code Online (Sandbox Code Playgroud)

有什么根本原因可以解决这个问题吗?

Ali*_*aru 3

如果您还没有阅读迁移指南,您应该特别关注向后不兼容的更改删除的扩展

你有比弃用更大的问题。忽视E_DEPRECATED是不够的。由于不兼容的更改,还会出现其他类型的错误,或者更糟糕的是,出现意外行为。

这是一个简单的例子:

<?php
function goto($line){
    echo $line;
}
goto(7);
?>
Run Code Online (Sandbox Code Playgroud)

该代码在 PHP 5.2.x 中可以正常工作并输出7,但在 PHP 5.3.x 中会出现解析错误。

您需要做的是获取该指南中的每一项并检查您的代码并在需要时进行更新。为了加快速度,您可以忽略第一阶段中已弃用的功能,并仅禁用 的错误报告E_DEPRECATED,但您不能假设在移植到另一个主要 PHP 分支时只会收到一些无害的警告。

另外,不要忘记您的黑客行为并尽快修复已弃用的问题。

问候,
阿林

注意:我试图从实际角度回答这个问题,所以请不要告诉我忽略警告是不好的。我知道这一点,但我也知道时间并不是无限的资源。