2011-12-30 10 views
46

Voglio creare 5 variabili di tipo array tutto in una volta. È possibile? In Java so che puoi, ma non riesci a trovare nulla su PHP. Mi piacerebbe fare qualcosa di simile:Puoi assegnare più variabili contemporaneamente in PHP come con Java?

$var1, $var2, $var3, $var4, $var5 = array(); 
+1

[correlate] (http://stackoverflow.com/questions/6257131/multiple-variable -assegnazione) –

+1

@DavidThomas Non avrebbe funzionato. –

+4

Solo per aggiungere alle risposte, se si fa questo con gli array, ogni variabile sarà * distinti * array che sono stati inizializzati sulla stessa cosa, non i riferimenti allo stesso singolo array. [Un esempio] (http://codepad.org/5FQHs3N0) – jprofitt

risposta

80

Sì, è possibile.

$a = $b = $c = $d = array(); 
9
$var1 = $var2 = $var3 = $var4= $var5 = array(); 
14
$c = $b = $a; 

è equivalente a

$b = $a; 
$c = $b; 

quindi:

$var1 = $var2 = $var3 = $var4= $var5 = array(); 
+3

La risposta è confusa L'equivalente deve essere: $ b = $ a; $ c = $ a; – valiD

+0

'$ x = [1,2]; $ y = [5,6]; '' $ x [] = $ y [] = 0; 'in base alla tua risposta $ x diventerà _ [1,2, [5,6,0]] _ il risultato effettivo è ** [1,2,0] ** cioè, '$ c = $ a;' –

+1

L'esempio appena sopra non utilizza l'assegnazione come indicato nell'esempio originale ma un push dell'array. Il valore di ritorno per l'array push è il valore che viene premuto, non la matrice che viene spinta in. Quando si esegue un'assegnazione, il valore di ritorno dell'assegnazione è la variabile assegnata. Oppure, per dirla in un altro modo, un push dell'array restituisce il lato destro, un'assegnazione restituisce il lato sinistro (che uguaglia il giusto comunque). Quindi nel tuo esempio, il tasto dell'array giusto restituisce lo zero che viene spinto all'assegnazione di sinistra. Potete vedere che il valore finale di '$ y' ha anche il' 0' inserito. – DjB

Problemi correlati