2011-03-28 133 views
1

我试图理解PHP数组。

$ _SESSION ['var']和$ _SESSION [$ var]之间有什么不同?

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

谢谢! :d

回答

5

如果使用$ var当成数组索引,$变种的值将被用作索引:

$var = "foo"; 

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

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

关于第二个实施例,在$ _SESSION [$变种] [1 ] $ _SESSION [$ var]中包含的字符串将以字母数组的形式访问,并返回索引1中的字符 - 第二个字母。

0

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

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

0

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

$_SESSION['my_string'] = 1; 

这将是一样的

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

因为$什么是 '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". 

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

关于第二个问题
0

,在访问他们没有问题,就像你说:

$ _SESSION [$首页] [$第二。

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

相关问题