2011-03-27 63 views
0

誰能給我講解一下?:PHP陣列 - 怪異的結果

if (isset($_SESSION['pack'])){ 
    if (is_array($_SESSION['pack'])){ 
     foreach ($_SESSION['pack'] as $pack){ 
     //code 
     } 
    } 
} 

我得到:

Warning: Invalid argument supplied for foreach() 

,如果我做

die(var_dump($_SESSION['pack'])); 

我得到

array(1) { [0]=> string(2) "16" } 

我真的與這一個要發狂了,我需要準備今晚,我堅持這一...

感謝

+0

你是否嘗試運行for循環? – 2011-03-27 19:22:22

+5

我不確定,但是如果您啓用了register_globals,'$ _SESSION ['pack']'將與'$ pack'相同。這可能會產生有線結果。要麼確保register_globals已禁用,要麼將$ pack重命名爲其他內容。 – fab 2011-03-27 19:24:31

+1

@fab您可能想讓您的評論成爲答案:) – 2011-03-27 19:48:14

回答

3

關於線

foreach ($_SESSION['pack'] as $pack){... 

如果你有register_globals啓用,$_SESSION['pack']將與$pack相同。這可能會產生奇怪的結果。要麼確保register_globals已禁用,要麼將$pack重命名爲其他內容。

+1

禁用register_globals幾乎總是一個好主意 – knittl 2011-03-27 20:07:01

+0

謝謝大家,正是這樣:) – 2011-03-27 20:44:07