2010-04-26 6 views
78

L'exemple est une déclaration variable dans une fonction:

global $$link; 

Qu'est-ce que cela signifie $$?

+8

* (référence) * http://de3.php.net/manual/fr/language.variables.variable.php – Gordon

+27

il vous montre combien $$$ vous obtiendrez pour la maintenance du système; – RCIX

+1

* (apparenté) * [Que signifie ce symbole en PHP] (http://stackoverflow.com/questions/3737139/reference-what-does-this-symbol-mean-in-php) – Gordon

Répondre

125

Une syntaxe tels que $$variable est appelé Variable Variable.


Par exemple, si vous considérez cette partie du code:

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

Vous obtiendrez la sortie suivante:

test 


ici:

  • $real_variable contient te st
  • $name contient le nom de votre variable: 'real_variable'
  • $$name signifie "la THA variable a son nom contenu dans $name"
    • Ce qui est $real_variable
    • et a la valeur 'test'



EDIT après @ commentaire de Jhonny:

Faire un $$$?
Eh bien, la meilleure façon de savoir est d'essayer ;-)

Donc, nous allons essayer cette partie de code:

$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 />'; 

Et voici la sortie I get:

name 
real_variable 
test 

Alors , Je dirais que, oui, vous pouvez faire $$$ ;-)

+7

Bien que je sois d'accord ça peut être utile, la plupart du temps il vaut mieux utiliser des tableaux de toute façon. –

+0

est-ce la même chose que de faire $ {$ value}? – Chaim

+2

@Chaim: oui c'est ;; sauf que, dans certains cas, le '{' et '}' sont requis * (il y a un exemple dans le manuel à ce sujet) * –

11

C'est 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

Il évalue le le contenu d'une variable comme le nom d'une autre. Fondamentalement, il vous donne la variable dont le nom est stocké dans $link.

19

L'interne $ résout la variable a en une chaîne, et l'externe résout une variable par cette chaîne.

Donc, considérez cet exemple

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

La variable:

$$outer 

serait égale à la chaîne "foo"

5

Il crée un nom de variable dynamique. Par exemple.

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

(également connu sous le nom variable variable)

3

Je ne veux pas répéter après les autres, mais il y a un risque à l'aide $$ :)

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

Il faut donc utiliser avec la tête. :)

Questions connexes