2011-06-11 132 views
0

此代碼不起作用><b>Fatal error</b>: Cannot use [] for reading i<b>致命錯誤</b>:不能使用[]讀取

<select style=" width:200px" class="mydds" name="myformdata[user][]"> 

這就是被髮送。

myformdata[user][] 1 
myformdata[user][] 2 
myformdata[user][] 3 

    foreach($form['user'][] as $val){ 
      echo ($val); 
    } 

是什麼問題?

+0

使用'的foreach($形式[ '用戶'])' – 2011-06-11 17:50:22

+0

或者使用'for'循環。 – 2011-06-11 17:52:28

回答

4

這是一個語法錯誤。正確的語法是:

foreach($form['user'] as $val) 

[]語法用於將數據附加到數組。例如:

$form['user'][] = 'test'; 

上面將新的字符串添加到$form['user']陣列的test值。

+0

感謝您的解釋 – user773961 2011-06-11 17:53:56

0

的已張貼信息的結果(如果我正確理解你的解釋)是:

$_REQUEST['myformdata']['user'] = array(1,2,3) 

由於錯誤狀態的很清楚,你不能閱讀使用[]。當您使用foreach時,代碼正在嘗試讀取as之前的值。它不能與[]一起閱讀。相反,嘗試:

foreach ($_REQUEST['myformdata']['user'] as $val) { echo $val; } 

或者,如果信息的真正是$form['user']只是使用並跳過[]

1
foreach($form['user'] as $val){ 
    echo ($val); 
} 
1

你的語法是錯誤的。其他人則暗示foreach(),我會另外提出一個for()循環:

for ($i = 0; $i < count($form['user']); $i++){ 
    echo ($form['user'][$i]); 
} 
+0

這將是更好的設置計數溫度變量:) – AntonioCS 2011-06-11 19:00:16

+0

這不是必要的,以演示for循環,但在優化(特別是對於大型數組)時,最好使用變量設置爲'count()'。這是因爲count()會在每次迭代時被調用,只需要調用一次。 – 2011-06-11 20:25:07

相關問題