<?php switch (true) :
case $_GET['change']:
echo 'hello';
break;
default:
echo 'bye';
break; ?>
它给了我这个错误:
解析错误:语法错误,文件意外结束 第47行的D:\ xampp \ htdocs \ profile.php。
这就是我的代码的结尾。 我忘记了什么,因为如果我对这段代码发表评论,那就很有效。
答案 0 :(得分:3)
您的开关案例需要一个变量来处理case
,如:
<?php
switch($_GET["change"])
{
case "value":
echo "You called this case.";
break; // Stop the switch for being executing futher.
default: // Set default message if the case wasn't found.
echo "Cannot find the case.";
break;
}
?>
答案 1 :(得分:2)
正确的代码是:
<?php
switch (true) :
case $_GET['change']:
echo 'hello';
break;
default:
echo 'bye';
break;
endswitch;
?>
这是因为你错过了endwitch;或者只使用括号{}
答案 2 :(得分:2)
您正在使用控制结构的替代语法,这意味着您必须在结束时关闭您的开关,
endswitch
制作完整的代码
switch (true):
case $_GET['change']:
echo 'hello';
break;
default:
echo 'bye';
break;
endswitch;
?>
尽管如此,您可以将这段代码简化为以下内容,除非您打算扩展switch/case
结构。
echo isset($_GET['change']) ? "hello" : "bye";
在任何情况下,只需执行case $_GET['change']:
只检查是否包含任何值,而不是它们是什么,或者它是否设置,因此您可能会收到有关此问题的警告。如果你打算扩展你的结构,你应该看到@ C0dekid的例子 - 那就是你应该如何构建你的switch/case
答案 3 :(得分:1)
应该如下:
<?php
switch ($_GET['change']) {
case [YOURVALUEHERE]:
echo 'hello';
break;
default:
echo 'bye';
break;
}
?>
来自PHP.net
的示例<?php
switch ($i) {
case 0:
echo "i equals 0";
break;
case 1:
echo "i equals 1";
break;
case 2:
echo "i equals 2";
break;
default:
echo "i is not equal to 0, 1 or 2";
}
?>
答案 4 :(得分:1)
最好设置括号:
<?php
switch ($_GET['change']) {
case true:
echo 'hello';
break;
default:
echo 'bye';
break;
}
?>
如果您想使用alternate syntax,请查看此警告:
警告强>
switch语句和第一种情况之间的任何输出(包括空格)都会导致语法错误。例如,这是无效的:
答案 5 :(得分:0)
你没有为你的开关放置正确的外壳,不要使用“:”而是“{”。例如:
switch (true) {
case $_GET['change']:
echo 'hello';
break;
default:
echo 'bye';
break;
}