2016-09-26 2 views
1

Недавно мы мигрировали PHP 5.6 на PHP 7Проходит ли ссылка по ссылке в php 7?

и теперь следующий код бросает $this->a =& new test($this->f);

Parse error: syntax error, unexpected 'new' (T_NEW) 

какие-либо идеи? каково чередование, которое я мог бы использовать для этого?

ответ

5

В соответствии с PHP7 несовместимые изменения: http://php.net/manual/en/migration70.incompatible.php

New objects cannot be assigned by reference

The result of the new statement can no longer be assigned to a variable by reference: <?php class C {} $c =& new C; ?>

Output of the above example in PHP 5:

Deprecated: Assigning the return value of new by reference is deprecated in /tmp/test.php on line 3

Output of the above example in PHP 7:

Parse error: syntax error, unexpected 'new' (T_NEW) in /tmp/test.php on line 3

Там нет альтернативы. Вы использовали устаревшее поведение, и теперь это уже не действительный PHP. Просто не назначайте по ссылке.

0

Чтобы уточнить ответ Марка Б: просто удалить амперсанд как это

$this->a = new test($this->f); 
Смежные вопросы