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 に答える