2010-09-22 26 views
29

Che cosa significa un & davanti a un nome di variabile?PHP: cosa significa un & davanti al nome di una variabile?

Ad esempio & $ stipendio vs $ stipendio

+3

Leggi: http://php.net/manual/en/language.references.php – NullUserException

+3

C'è una difficile trovare argomento di riferimento per i simboli di PHP (che non è possibile facilmente cercare in SO): http://stackoverflow.com/questions/3737139/reference-what-does-this-symbol-mean-in-php – Wrikken

+0

possibile duplicato di [Php By Reference] (http: // stackoverflow. it/questions/475990/php-by-reference) –

risposta

52

Passa un riferimento alla variabile in modo che quando viene modificata qualsiasi variabile assegnata al riferimento, la variabile originale viene modificata. Sono davvero utili quando si creano funzioni che aggiornano una variabile esistente. Invece di codificare in modo rigido la variabile che viene aggiornata, puoi semplicemente passare un riferimento alla funzione.

Esempio

<?php 
    $number = 3; 
    $pointer = &$number; // Sets $pointer to a reference to $number 
    echo $number."<br/>"; // Outputs '3' and a line break 
    $pointer = 24;  // Sets $number to 24 
    echo $number;   // Outputs '24' 
?> 
+1

Domanda veloce, quando e perché dovrei usarlo invece di assegnare un nuovo valore alla variabile? Qualcosa del genere: '$ numero = 3; echo $ numero; // Output 3 $ numero = 5; echo $ numero; // Output 5' –

+0

Un esempio potrebbe essere quando si desidera passare il riferimento in una funzione. In questo modo, i valori originali vengono aggiornati al posto della variabile locale della funzione! – GoogleMac

0

Viene utilizzato per passare un oggetto per riferimento.

Vedere this entry nella documentazione di PHP.

+2

solo ** oggetti **? può essere la parola più appropriata è "variabile"? – zerkms

+0

cosa fa "echo $ a-> foo"? –

+1

Gli oggetti sono passati per riferimento in PHP5 comunque, quindi non c'è bisogno di '&' quando si tratta di oggetti. @user, Ottiene il parametro 'pippo' dall'oggetto assegnato alla variabile' $ a' –

2

È un riferimento, proprio come in altri linguaggi come il C++. C'è una sezione nel documentation a riguardo.

Problemi correlati