数组&会话 - 'var'和$ var之间的区别

时间:2011-03-28 16:57:27

标签: php arrays session

我正在尝试理解PHP数组。

之间有什么不同

$ _ SESSION ['var']和$ _SESSION [$ var]?

我们如何以及何时可以像这样访问变量 - $ _SESSION [$ var] [1]?

谢谢! :d

5 个答案:

答案 0 :(得分:5)

如果使用$ var作为数组索引,$ var的值将用作索引:

$var = "foo";

$_SESSION['foo'] = "bar";
$_SESSION['var'] = "variable";

echo $_SESSION['var']; // This will echo "variable"
echo $_SESSION[$var];  // This will echo "bar"

至于你的第二个例子,在$ _SESSION [$ var] [1]中,$ _SESSION [$ var]中包含的字符串将作为字母数组访问,返回索引1中的字符 - 第二个字母。< / p>

答案 1 :(得分:0)

在前者中,'var'是$ _SESSION数组的“键”。在后者中,变量$ var保存一个值,该值是$ _SESSION数组的“键”。

答案 2 :(得分:0)

使用$_SESSION['var'],您可以使用键var指定值;使用$_SESSION[$var],您可以使用 $var的值来指定值:

$arr = array('var' => 1, 'foo' => 2);
$var = 'foo';
var_dump($arr['var']);  // int(1)
var_dump($arr[$var]);   // int(2)

在问题出现之前:$arr["$var"]等同于$arr[$var](此处$var在内部转换为字符串)。尽管$arr[var]$var['var']等效处理,但您不应使用前者。另请参阅Array dos and don’ts

答案 3 :(得分:0)

$ var是一个变量'var'是一个字符串。如果你说

$_SESSION['my_string'] = 1;

这与

相同
$anything = 'my_string';
$_SESSION[$anything] = 1;

因为$ anything是'my_string'。在这个例子中:

$_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".

你可以看到它是如何运作的。

答案 4 :(得分:0)

关于第二个问题,访问它们没有问题,就像你说的那样:

$ _ SESSION [$第一] [$秒]。

关于第一个答案,请参阅Kaivosukeltaja,他给出了一个很好的答案