我有这个代码
<?php
session_start();
switch($sb) {
foreach ($_SESSION['myarray'] as $result){
case $result:
echo "id"$result;
break;
}
}
?>
这给了我以下错误,我无法弄清楚为什么:
解析错误:语法错误、意外T_FOREACH、期望 foreach 行上出现T_CASE或T_DEFAULT或"}"。
虽然这有效:
<?php
foreach ($_SESSION['myarray'] as $result){
echo "SB: ".$result.",<br>";
}
?>
并输出为:
SB 编号: 1,SB 编号: 2,SB 编号: 3,SB 编号: 4,SB ID: 10,SB 编号: 11,SB 编号: 12,SB 编号: 13,
谁能看出出了什么问题?谢谢。
不能将 foreach 直接放在 switch 语句中
请参阅此处的文档
开关应如下所示:
switch($val){
case 1:
//some code... you can put a foreach here
break;
case 2:
//you could do this if you want:
foreach ($myArray as $key => $value){
//do some stuff!
}
break;
default:
//some code for a default case
break;
}
另外,echo "id"$result;
会给您带来问题。这应该在它之间有连接运算符
switch
语言结构的定义是,它只能包含大小写,而不能像for-each
那样包含任意代码块。