Guarda questo esempio. C'è una linea:Che cos'è = & in PHP?
$client =& new xmlrpc_client('/xml-rpc', 'api.quicktate.com', 80);
$client->return_type = 'xmlrpcvals';
Qual è il =&
e che cosa fa il ->
in $client->return_type
significa?
Guarda questo esempio. C'è una linea:Che cos'è = & in PHP?
$client =& new xmlrpc_client('/xml-rpc', 'api.quicktate.com', 80);
$client->return_type = 'xmlrpcvals';
Qual è il =&
e che cosa fa il ->
in $client->return_type
significa?
Il =
e lo &
dovrebbero * avere uno spazio tra di loro - sono due operatori diversi. Il &
significa get a reference to this.
Il ->
è per l'accesso membro oggetto - questo significa assegnare 'xmlrpcvals' al membro return_type
di $client
.
* vedere i commenti di chiarimento
Il '=' e il '&' non hanno bisogno di avere uno spazio tra di loro. – treeface
@treeface - ciò che intendo per "dovrebbe" è che è fuorviante non avere uno spazio. Non mi interessa cosa pensa il parser, sto solo pensando alla povera persona che legge quel codice e cerca di capire cosa significa "=". – Skilldrick
@treeface: sì, lo spazio è insignificante; tuttavia, Skilldrick sta dicendo che '= &' non è trattato dal parser come un singolo operatore stesso, a differenza di '=>' che è un singolo operatore. – BoltClock
Questo è chiamato returning by reference.
... e questo non è più necessario in PHP5 dove gli oggetti vengono sempre passati per riferimento. –
L'= & assegna la variabile di riferimento all'oggetto piuttosto che copiarlo. Sono due operatori separati (assegnazione e ottenimento di un riferimento) ma sono spesso scritti insieme.
Il -> è un operatore di accesso membro; nell'esempio significa ottenere il return_type che appartiene al client XML-RPC.
è quello di passare una variabile per riferimento
<?php
$a = 5;
$b =& $a;
$b = 6;
echo "a: ";
var_dump($a);
echo "b: ";
var_dump($b);
?>
uscita:
a: int(6)
b: int(6)
partire con l'ultima domanda prima;
qual è il significato di -> in $ client-> return_type?
-> è l'operatore si utilizza per accedere alle proprietà e metodi di un oggetto in PHP. La maggior parte delle lingue, come Java o Javascript, usano l'operatore punto per la stessa cosa. Esso (probabilmente) deriva dalla sintassi C per accedere ai membri di una struct.
Poi che la prima domanda ...
qual è il = &?
La versione corta è, nel tuo esempio, è una reliquia non più necessari; una sbornia da PHP4 di cui non hai più bisogno se usi PHP5. Ma nota questo è specifico del tuo esempio.
Per la versione lunga, in modo da realmente capire cosa sta succedendo leggere http://derickrethans.nl/talks/phparch-php-variables-article.pdf sui riferimenti in PHP
Ed è deprecato in PHP 5,3x in modo da non utilizzare. –