Что такое = & в PHP?

Посмотрите на этот пример. Есть строка:

$client =& new xmlrpc_client('/xml-rpc', 'api.quicktate.com', 80); $client->return_type = 'xmlrpcvals'; 

Что такое =& и что означает значение -> in $client->return_type ?

Solutions Collecting From Web of "Что такое = & в PHP?"

= И & должны иметь пробел между ними – это два разных оператора. « & означает ссылку на это .

« -> – для доступа к члену объекта – это означает присвоение «xmlrpcvals» члену return_type из $client .

* см. комментарии для уточнения

Передача переменной по ссылке

 <?php $a = 5; $b =& $a; $b = 6; echo "a: "; var_dump($a); echo "b: "; var_dump($b); ?> 

вывод:

 a: int(6) b: int(6) 

= & Присваивает переменной ссылку на объект, а не копирует ее. Это два отдельных оператора (назначение и получение ссылки), но они часто записываются вместе.

-> – оператор доступа к члену; в примере это означает, что return_type принадлежит клиенту XML-RPC.

Начиная с последнего вопроса;

что означает значение -> in $ client-> return_type?

-> – это оператор, который вы используете для доступа к свойствам и методам объекта в PHP. Большинство языков, таких как Java или Javascript, используют оператор точек для одного и того же объекта. Это (возможно) происходит от синтаксиса C для доступа к членам структуры.

Тогда этот первый вопрос …

что такое = &?

Короткий вариант, в вашем примере , это реликвия, которая вам больше не нужна; похмелье от PHP4, которое вам больше не нужно, если вы используете PHP5. Но обратите внимание, что это характерно для вашего примера.

Для длинной версии, чтобы вы действительно понимали, что происходит, читайте http://derickrethans.nl/talks/phparch-php-variables-article.pdf о ссылках в PHP

Это называется возвратом по ссылке .