2011-06-11 101 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

相关问题