Подтвердить что ты не робот

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

Посмотрите на этот пример. Существует строка:

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

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

4b9b3361

Ответ 1

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

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

* см. комментарии для разъяснения

Ответ 2

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

<?php  
   $a = 5; 
   $b =& $a; 
   $b = 6; 

   echo "a: "; 
   var_dump($a); 
   echo "b: "; 
   var_dump($b); 
?>

выход:

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

Ответ 3

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

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

Ответ 4

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

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

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

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

что такое = &

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

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