2010-04-26 21 views
78

Ejemplo es una declaración de variable dentro de una función:

global $$link; 

¿Qué significa $$?

+8

* (referencia) * http://de3.php.net/manual/en/language.variables.variable.php – Gordon

+27

le muestra cuánto dinero recibirá por mantener el sistema;) – RCIX

+1

* (relacionado) * [¿Qué significa ese símbolo en PHP] (http://stackoverflow.com/questions/3737139/reference-what-does-this-symbol-mean-in-php) – Gordon

Respuesta

125

Una sintaxis tal como $$variable se llama Variable Variable.


Por ejemplo, si se tiene en cuenta esta porción de código:

$real_variable = 'test'; 
$name = 'real_variable'; 
echo $$name; 

Usted recibirá el siguiente resultado:

test 


aquí:

  • $real_variable contiene te st
  • $name contiene el nombre de la variable: 'real_variable'
  • $$name significa "los thas variable tiene su nombre contenida en $name"
    • Lo cual es $real_variable
    • y tiene el valor 'test'



Edición después de @ comentarios de Jhonny:

Haciendo un $$$?
Bueno, la mejor manera de saberlo es probar ;-)

Por lo tanto, vamos a probar esta porción de código:

$real_variable = 'test'; 
$name = 'real_variable'; 
$name_of_name = 'name'; 

echo $name_of_name . '<br />'; 
echo $$name_of_name . '<br />'; 
echo $$$name_of_name . '<br />'; 

y aquí está la salida me sale:

name 
real_variable 
test 

Así , Yo diría que, sí, puede hacer $$$ ;-)

+7

Aunque estoy de acuerdo con eso puede ser útil, la mayoría de las veces es mejor usar matrices de todos modos. –

+0

, ¿es esto lo mismo que hacer $ {$ value}? – Chaim

+2

@Chaim: sí lo es ;; excepto que, en algunos casos, se requieren '{' y '}' * (hay un ejemplo en el manual sobre eso) * –

11

Es un variable's variable.

<?php 
$a = 'hello'; 
$$a = 'world'; // now makes $hello a variable that holds 'world' 
echo "$a ${$a}"; // "hello world" 
echo "$a $hello"; // "hello world" 
?> 
1

Evalúa el contenido de una variable como el nombre de otra. Básicamente le da la variable cuyo nombre está almacenado en $link.

19

El interior $ resuelve la variable a una cadena, y la externa resuelve una variable con esa cadena.

lo tanto, considerar este ejemplo

$inner = "foo"; 
$outer = "inner"; 

La variable:

$$outer 

sería igual a la cadena "foo"

5

Se crea un nombre de variable dinámica. P.ej.

$link = 'foo'; 
$$link = 'bar'; // -> $foo = 'bar' 
echo $foo; 
// prints 'bar' 

(también conocido como variable variable)

3

no quiero repetir después de que otros, pero hay un riesgo utilizando $$ :)

$a = '1'; 
$$a = 2; // $1 = 2 :) 

lo tanto, utilizar con la cabeza. :)

Cuestiones relacionadas