<? switch ($var): ?>
<? case 1: ?>
It's 1!
<? break ?>
<? endswitch ?>
我想做这样的事情,换句话说,在 PHP 模板中使用 switch 语句。这可以通过 if 语句实现。上面的代码在 PHP 5.3 中生成Parse error: syntax error, unexpected T_INLINE_HTML, expecting T_ENDSWITCH or T_CASE or T_DEFAULT
。PHP文档建议这应该是可能的。
有人可以确认这不起作用,或者更确切地说,告诉我我做错了什么吗?
谢谢。
我在 php 文档中读到您的示例应该不起作用。
switch 语句和 第一种情况将导致语法错误。例如,这是无效的
试试这个:
<div>
<?php switch($variable):
case 1: ?>
<div>
Newspage
</div>
<?php break; ?>
<?php case 2: ?>
</div>
Forum
<div>
<?php break; ?>
<?php endswitch; ?>
</div>
http://php.net/control-structures.alternative-syntax
你有
?>'n'n<?
在您的开关之后,它变成了
switch($var):
echo "'n't";
case 1:
把你的脚本想象成包含HTML的PHP,而不是修饰的HTML。PHP 二进制文件首先获取文件。
您可能希望使用类似HEREDOC的东西来回显未转义的HTML。
我使用这种"友好的格式"。经过测试并工作:
<? switch($var) : case 1 : ?>
<p>One</p>
<? break; case 2 : ?>
<p>Two</p>
<? break; case 3 : ?>
<p>Three</p>
<? break; default : ?>
<p>Default Value</p>
<? endswitch; ?>
在使用 switch 或 foreach 语句和在 php 5.6 上运行的新样式短标签时,我遇到了类似的问题。
就我而言:更改
<?=
switch ($number_of_columns) {
case "1":
echo '<div class="col-sm-12 col-md-12" >';
break;
case "2":
echo '<div class="col-sm-12 col-md-6" >';
break;
case "4":
echo '<div class="col-sm-6 col-md-3" >';
break;
default:
echo '<div class="col-sm-6 col-md-4" >';
}
?>
自
<?php
switch ($number_of_columns) {
case "1":
echo '<div class="col-sm-12 col-md-12" >';
break;
case "2":
echo '<div class="col-sm-12 col-md-6" >';
break;
case "4":
echo '<div class="col-sm-6 col-md-3" >';
break;
default:
echo '<div class="col-sm-6 col-md-4" >';
}
?>
没有导致语法错误,即语法错误,意外的"开关"(T_SWITCH)