Php 菲律宾比索5和&;新";

Php 菲律宾比索5和&;新";,php,Php,本声明: $node_obj =& new someClass($somearg, $moreargs); 在最新版本的PHP中生成错误,对吗 我已经在我的机器上试过了(PHP>=5.0.0&删除&) 在PHP5中,对象默认作为引用传递,这就是为什么在此上下文中不推荐使用&。因此,出现以下或类似错误: Parse error: syntax error, unexpected 'new' (T_NEW) in /usr/share/php/PEAR/Config.php on lin

本声明:

$node_obj =& new someClass($somearg, $moreargs);
在最新版本的PHP中生成错误,对吗


我已经在我的机器上试过了(PHP>=5.0.0&删除
&


在PHP5中,对象默认作为引用传递,这就是为什么在此上下文中不推荐使用
&

因此,出现以下或类似错误:

Parse error: syntax error, unexpected 'new' (T_NEW) in 
/usr/share/php/PEAR/Config.php on line 650
正确的修复方法是升级所有PEAR库。但由于(在撰写本文时)没有PEAR库,下面介绍如何在运行PHP7时修复PEAR中的所有这些错误

在修复之前。 返回77个实例

现在是
sed
magic 修复后 前面的代码返回零次

您可能还希望将其添加到
PEAR.php
中的某个位置:

function set_magic_quotes_runtime() {}

如果我删除&,那么在最旧版本的PHP中会出现错误,对吗?不会有错误,但行为可能会有细微的不同。无论如何,在这个时代,您不应该使用PHP4兼容性来编写脚本。PHP4多年来一直不受支持。@xRobot本身不是错误,但在PHP4中行为会有所不同。但是这在2010年应该不再是一个问题了,PHP 4真的死了。我希望PHP4死了。我现在正在做一个项目,我必须在这两个平台上都运行代码!明年之前不要升级:(我从未遇到过这种情况,直到我从PHP5.6升级到7.0,几乎我使用的每一个PEAR扩展都开始抛出致命错误。解决方案完全如所述:在
&new…
的所有实例中删除
&
。不幸的是,有问题的PEAR库完全是最新的,因此,我需要fork或submit。)一个补丁可以继续可靠地使用它们。这是一个不推荐使用的通知,比错误严重得多。但是它们当然可以修复
find /usr/share/php -type f -name \*.php | xargs sed -i 's/&new/new/g'
find /usr/share/php -type f -name \*.php | xargs sed -i 's/& new/ new/g'
function set_magic_quotes_runtime() {}