在PHP 5.3中已弃用了按引用分配new的返回值.因此,
$obj =& new Foo();
Run Code Online (Sandbox Code Playgroud)
现在抛出一个E_DEPRECATED错误.
将具有大量遗留代码的大型应用程序升级到5.3时,会导致许多不必要的通知.
作为这个问题的潜在解决方案,我正在考虑使用正则表达式来查找和替换=& newwith的所有实例= new.例如,以下内容将查找所有PHP文件,并清除以下所有实例=& new:
find ./ -name '*.php' | xargs perl -p -i -e 's/=(\s*)&(\s*)?new\b/= new/g'
Run Code Online (Sandbox Code Playgroud)
寻找以下问题的答案:
=& new与= new将改变在PHP 5.3的行为.=& new?我怀疑这样可以正常工作,但寻找可能遇到麻烦的边缘情况.是的,我知道我可以更改错误报告设置.但我不想隐藏通知,我想修复它们.
php ×1