FR *_*TAR 2 syntax-error pass-by-reference php-7
最近我们将PHP 5.6迁移到了PHP 7
现在跟随代码抛出 $this->a =& new test($this->f);
Parse error: syntax error, unexpected 'new' (T_NEW)
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?我能用它做什么变化?
根据PHP7不兼容的更改:http://php.net/manual/en/migration70.incompatible.php
无法通过引用分配新对象
无法再通过引用将新语句的结果分配给变量:
<?php class C {} $c =& new C; ?>在PHP 5中输出上面的例子:
不推荐使用:在第3行的/tmp/test.php中弃用了按引用分配new的返回值
在PHP 7中输出上面的例子:
解析错误:语法错误,第3行/tmp/test.php中的意外"新"(T_NEW)
没有替代.您使用的是不推荐使用的行为,现在它不再是有效的PHP.只是不要通过引用分配.
为了澄清 Marc B 的答案:只需像这样删除 & 符号
$this->a = new test($this->f);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6100 次 |
| 最近记录: |