PHP новый оператор, возвращающий ссылку - PullRequest
3 голосов
/ 09 декабря 2008

Я работаю со старым PHP-кодом, который имеет много следующего:

$someVar =& new SomeClass();

Оператор new когда-либо возвращал значение, не по ссылке? (Это странно набирать. Я чувствую, что схожу с ума.)

Ответы [ 3 ]

5 голосов
/ 09 декабря 2008

Это был один из тех методов оптимизации, которым обучают во многих старых книгах по ООП в PHP 4.

По сути, исходный объект, созданный в памяти, - это объект, к которому приложение не может получить доступ, если вы не вернете экземпляр по ссылке. В противном случае вы получите копию объекта - единственное преимущество в том, что оригинал существует без символа. Вроде тупой.

Но создание и передача объектов, а также ссылки в PHP 4 - это огромный беспорядок.

4 голосов
/ 09 декабря 2008

Это код PHP4. Из документации: (сейчас удалено)

"новый" не возвращает ссылку по по умолчанию, вместо этого он возвращает копию.

[1]: http://no.php.net/manual/en/language.oop.newref.php

1 голос
/ 24 января 2009

См. Также мой ответ здесь , который включает в себя простой пример кода для иллюстрации проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...