Я конвертирую старый код PHP 4.x для PHP 5.3. Я натолкнулся на следующее, и я не уверен, что он делает.PHP: создать класс по ссылке?
$variable =& new ClassName();
Какова разница между этим и:
$variable = new ClassName();
Я конвертирую старый код PHP 4.x для PHP 5.3. Я натолкнулся на следующее, и я не уверен, что он делает.PHP: создать класс по ссылке?
$variable =& new ClassName();
Какова разница между этим и:
$variable = new ClassName();
В Ye Olde Дни PHP4 = & необходимо при строительстве объектов. В PHP 5 это не так.
=&
. Справочное задание.
т.д .:
$a = 'a';
$b =& $a;
$b = 'b';
echo $a; // Prints 'b', since a and b have been linked by &=.
Другими словами, он имеет свои преимущества, но только не при создании экземпляра объекта. Для этого использования он был депрепаратирован.
В PHP4 объекты по умолчанию передавались по значению, а не по ссылке. Это означает, что копия объекта была сделана при назначении. Если вы хотите передать объект по ссылке вместо значения, вы можете использовать оператор &
. В PHP5 объекты по умолчанию передаются по ссылке. Таким образом, &
больше не нужен при работе с объектами. Примитивы (или скаляры, которые часто вызывают в мире PHP) по умолчанию по умолчанию передаются значением.
Я нахожу, что при переносе кода OO PHP4 на PHP5 довольно много &
s удаляется.
см. Http://docs.php.net/language.oop5.references – VolkerK