PHP 注入的 HTML 中的切换语句

2022-08-30 15:04:54
<? switch ($var): ?>
  <? case 1: ?>
    It's 1!
  <? break ?>
<? endswitch ?>

我想做这样的事情,换句话说,在PHP模板中使用switch语句。这可以通过 if 语句实现。上面的代码在 PHP 5.3 中生成。PHP文档建议这应该是可能的。Parse error: syntax error, unexpected T_INLINE_HTML, expecting T_ENDSWITCH or T_CASE or T_DEFAULT

有人可以确认这不起作用,或者更确切地说,告诉我我做错了什么吗?

谢谢。


答案 1

我在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


答案 2

你有

?>\n\n<?

在你的开关后,变成

switch($var):
echo "\n\t";
case 1:

把你的脚本想象成包含HTML的PHP,而不是修饰的HTML。PHP 二进制文件首先获取文件。

您可能希望使用像HEREDOC这样的东西来回显未转义的HTML。


推荐