PHP 注入 HTML 中的 Switch 语句
<? switch ($var): ?>
<? case 1: ?>
It's 1!
<? break ?>
<? endswitch ?>
我想做类似的事情,换句话说,在 PHP 模板中使用 switch 语句。这可以通过 if 语句实现。上面的代码在 PHP 5.3 中生成解析错误:语法错误、意外的 T_INLINE_HTML、期望 T_ENDSWITCH 或 T_CASE 或 T_DEFAULT
。 PHP 文档表明这应该是可能的。
有人可以确认这不起作用,或者更确切地说,告诉我我做错了什么?
谢谢。
<? switch ($var): ?>
<? case 1: ?>
It's 1!
<? break ?>
<? endswitch ?>
I want to do something like that, in other words use the switch statement in PHP templates. This is possible with the if statement. The above code generates Parse error: syntax error, unexpected T_INLINE_HTML, expecting T_ENDSWITCH or T_CASE or T_DEFAULT
in PHP 5.3. The PHP docs suggests that this should be possible.
Can someone confirm that this doesn't work, or rather, tell me what I'm doing wrong?
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
我在 php 文档中读到您的示例不应该工作。
请尝试以下操作:
http://php.net/control-structs.alternative -语法
I read in the php doc that your example should not work.
Try this instead:
http://php.net/control-structures.alternative-syntax
您
切换后,
将把您的脚本视为包含 HTML 的 PHP,而不是经过修饰的 HTML。 PHP 二进制文件首先获取文件。
您可能想使用 HEREDOC 之类的东西来回显未转义的 HTML。
You have
after your switch which becomes
Think of your script as PHP with HTML in it, rather than embellished HTML. The PHP binary gets the file first.
You might like to use something like HEREDOC to echo out unescaped HTML.
我使用这种“友好格式”。已测试并工作:
I use this "friendly formatting". Tested and working:
当使用 switch 或 foreach 语句以及在 php 5.6 上运行的新样式短标签时,我遇到了类似的问题。
就我而言:更改
为
不会导致语法错误,即语法错误,意外的“开关”(T_SWITCH)
I had a similar issue when using a switch or a foreach statement with the new style short tags running on php 5.6.
in my case: changing
to
resulted in no syntax error i.e. syntax error, unexpected 'switch' (T_SWITCH)