【发布时间】:2013-01-23 17:20:34
【问题描述】:
我有这个代码
<?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,
谁能看出哪里不对劲?谢谢。
【问题讨论】:
-
你不能在一个开关里面有这样的
foreach。它需要一个或多个case。查看手册php.net/manual/en/control-structures.switch.php -
建议你在 PHP 文档中查找 switch 语句的结构
-
我认为你需要更清楚你想要做什么,因为你很可能会以错误的方式去做。根据下面的评论,您说您需要使用 url 中的 $sb 来运行基于 $_SESSION['myarray'] 中的 id 的查询。你能不能只测试使用
$key=array_search($sb, $_SESSION['myarray']); if($key !== false){ echo "SB: ".$_SESSION['myarray'][$key]; } -
这对乔纳森有帮助,谢谢 :)
标签: php session foreach switch-statement case