0

我有这个代码

<?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 id: 1, SB id: 2, SB id: 3, SB id: 4, SB id: 10, SB id: 11, SB id: 12, SB id: 13,

任何人都可以看到有什么问题吗?谢谢。

4

2 回答 2

2

您不能将 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;会给你带来麻烦。那应该有它之间的连接运算符

于 2013-01-23T17:22:45.060 回答
1

语言结构被定义为switch它只能由案例组成,而不是像你的for-each.

于 2013-01-23T17:22:50.110 回答