簡體   English   中英

數組和會話-'var'和$ var之間的區別

[英]Array & Session - Different between 'var' and $var

我正在嘗試了解PHP數組。 兩者之間有什么不同

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

以及如何以及何時才能訪問這樣的變量-$ _SESSION [$ var] [1]?

謝謝! :D

如果將$ 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中的字符-第二個字母。

在前一種情況下,“ var”是$ _SESSION數組的“鍵”。 在后者中,變量$ var保留一個值,該值是$ _SESSION數組的“鍵”。

使用$_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']等效,但您不應使用前者。 另請參見數組“注意事項”

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

您可以看到它的工作原理。

在第二個問題上,訪問它們沒有問題,就像您說的那樣:

$ _SESSION [$ first] [$ second]。

在第一個答案上,看到Kaivosukeltaja,他給出了一個很好的答案

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM