143 votes

Que signifie $$ (dollar dollar ou double dollar) en PHP ?

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

global $$link;

Qu'est-ce que $$ C'est-à-dire ?

8 votes

59 votes

Cela vous montre combien de $$$$ vous allez recevoir pour la maintenance du système ;)

2 votes

225voto

Pascal MARTIN Points 195780

Une syntaxe telle que $$variable s'appelle Variable Variable .

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

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

Vous obtiendrez le résultat suivant :

test

Ici :

  • $real_variable contient un test
  • $name contient le nom de votre variable : 'real_variable'
  • $$name mean " la variable dont le nom est contenu dans $name "
    • Ce qui est $real_variable
    • Et a la valeur 'test'

EDIT après le commentaire de @Jhonny :

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

Essayons donc cette portion 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 le résultat que j'obtiens :

name
real_variable
test

Donc, je dirais que, oui, vous pouvez le faire $$$ ;-)

15 votes

Bien que je convienne que cela peut être utile, la plupart du temps, il est préférable d'utiliser des tableaux de toute façon.

0 votes

Est-ce que c'est la même chose que de faire ${$value} ?

3 votes

@Chaim : oui, c'est le cas ; ; sauf que, dans certains cas, la { y } sont nécessaires (il y a un exemple dans le manuel à ce sujet)

25voto

Rich Points 16818

Le $ intérieur résout la variable a en une chaîne, et le $ extérieur résout une variable par cette chaîne.

Prenons l'exemple suivant

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

La variable :

$$outer

serait égal à la chaîne "foo"

0 votes

Même si la réponse acceptée est beaucoup plus large (incluant des cas de test). Cette explication a rendu les choses plus claires pour moi

14voto

Anthony Forloney Points 30083

C'est un variable de la variable .

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

8voto

Felix Kling Points 247451

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 de variable variable )

2voto

global $$link; ne signifie pas une mauvaise conception de l'application.
Celui qui a écrit cela n'a aucune idée du support du code.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X