是否支持php 7中的引用?

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)

有任何想法吗?我能用它做什么变化?

Mar*_*c B 6

根据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.只是不要通过引用分配.


Ben*_*wee 5

为了澄清 Marc B 的答案:只需像这样删除 & 符号

$this->a = new test($this->f);
Run Code Online (Sandbox Code Playgroud)