这个有效的PHP代码如何?
发布时间:2020-12-13 16:24:04 所属栏目:PHP教程 来源:网络整理
导读:我正在修改一个wordpress模板,我很好奇,这是 PHP中有效的控制结构.任何人都有洞察力 ?php if(condition): ??php if(!condition || !function()) ??php elseif(condition): ??php if(!condition || !function()) ??php endif; ? 如果我删除所有的标签,我得到(
我正在修改一个wordpress模板,我很好奇,这是
PHP中有效的控制结构.任何人都有洞察力
<?php if(condition): ?> <?php if(!condition || !function()) ?> <?php elseif(condition): ?> <?php if(!condition || !function()) ?> <?php endif; ?> 如果我删除所有的标签,我得到(更精确的缩进): <?php if(condition): if(!condition || !function()) elseif(condition): if(!condition || !function()) endif; ?> 这是无效的,因为缩进的if语句不会结束.那么如何/为什么这个代码是有效的,如果有开放和关闭php标签无处不在? 编辑Kerrek SB.制作一个php文件并运行它.有效: <?php if(true): ?> <?php if(true) ?> <?php endif; ?> <?php echo 'here'; ?>
您的(简化)示例代码相当于:
<?php if(condition): if(!condition || !function()) { } endif; ?> 甚至: <?php if(condition): if(!condition || !function()); endif; ?> 关闭<?php标签,你似乎得到一个空的声明是免费的. 你的真实例子可能像这样一个人: <?php if(true): if(true); endif; echo 'here'; ?> 但请注意,一个elseif使这个模糊! <?php if(condition): if(!condition || !function()); elseif(condition): // Bogus! which block does this belong to? if(!condition || !function()); endif; ?> 我们必须消除歧义: <?php if(condition): { if(!condition || !function()); } elseif(condition): { if(!condition || !function()); } endif; ?> 现在很清楚,但是现在我们可以完全免除了冒号语法. 感谢Lekensteyn指出这一点! 请参阅下面的讨论进一步的怪异. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |