J'essaie de comprendre le tableau PHP en ce moment. Quelle est la différence entre
$ _SESSION ['var'] et $ _SESSION [$ var]?
Et comment et quand pouvons-nous accéder à une variable comme celle-ci - $ _SESSION [$ var] [1]?
Merci! : D
J'essaie de comprendre le tableau PHP en ce moment. Quelle est la différence entre
$ _SESSION ['var'] et $ _SESSION [$ var]?
Et comment et quand pouvons-nous accéder à une variable comme celle-ci - $ _SESSION [$ var] [1]?
Merci! : D
Si vous utilisez $ var comme un index de tableau, la valeur de $ var sera utilisé comme indice:
$var = "foo";
$_SESSION['foo'] = "bar";
$_SESSION['var'] = "variable";
echo $_SESSION['var']; // This will echo "variable"
echo $_SESSION[$var]; // This will echo "bar"
Quant à votre deuxième exemple, en $ _SESSION [$ var] [1 ] la chaîne contenue dans $ _SESSION [$ var] sera accessible comme un tableau de lettres, renvoyant le caractère dans l'index 1 - la deuxième lettre.
Dans le premier, 'var' est la "clé" du tableau $ _SESSION. Dans ce dernier, la variable $ var contient une valeur qui est la "clé" du tableau $ _SESSION.
Avec $_SESSION['var']
vous spécifiez la valeur avec la clé var
; avec $_SESSION[$var]
vous spécifiez la valeur avec la clé avec la valeur de$var
:
$arr = array('var' => 1, 'foo' => 2);
$var = 'foo';
var_dump($arr['var']); // int(1)
var_dump($arr[$var]); // int(2)
Et avant que la question se pose: $arr["$var"]
équivaut à $arr[$var]
(ici $var
est converti en chaîne interne). Et bien que $arr[var]
soit traité de manière équivalente comme $var['var']
, vous ne devriez pas utiliser le premier. Voir aussi Array dos and don’ts.
$ var est une variable 'var' est une chaîne. Si vous dites
$_SESSION['my_string'] = 1;
ce serait la même chose que
$anything = 'my_string';
$_SESSION[$anything] = 1;
parce que tout est $ 'my_string'. Dans cet exemple:
$_SESSION['test'] = 'test output';
$demo = 'demo';
$_SESSION[$demo] = 'demo output';
echo $_SESSION['test']; // outputs "test output"
echo $_SESSION['demo']; // outputs "demo output" and is the same as:
echo $_SESSION[$demo]; // outputs "demo output".
vous pouvez voir comment cela fonctionne.
sur la deuxième question, il n'y a pas de problème pour y accéder, tout comme vous avez dit:
$ _SESSION [premier $] [$ seconde].
sur la première réponse, voir Kaivosukeltaja, il a donné une excellente réponse