对于每个 $_session[数组],然后使用结果作为开关 - 案例值


Foreach $_session[array] then using the result as a switch - case value

我有这个代码

<?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那样包含任意代码块。