为什么我看到有人在php文件里用这种语法

比如在wordpress的模板里经常看到这样的语法

<?php if (have_post()): ?>
<div>...</div>
<?php endif; ?>

为什么还要像if (...):endif;这样写?这是什么语法?为什么不用括号呢?

阅读 6.6k
7 个回答

上下标签对应的逻辑语法约定俗成拿来做原生的模板语言

类似的还有
while(..): endwhile;
foreach(..): ... endforeach;

这种格式都使用在视图中,代码更加清晰,也适合前端开发人员查看

当一个页面需要工程师与设计师共同完成的时候,这种高可读性的语法更有利于团队的合作。

新手上路,请多包涵

<?php if (have_post()){ ?>
<div>...</div>
<?php } ?>
其实这种原生的可读性也不错呀!从可读性角度似乎比较牵强,,,当然不可否定的是每种模板都有其各自的语法风格。。。

流程控制的替代语法

PHP 提供了一些流程控制的替代语法,包括 if,while,for,foreach 和 switch。替代语法的基本形式是把左花括号({)换成冒号(:),把右花括号(})分别换成 endif;,endwhile;,endfor;,endforeach; 以及 endswitch;。

<?php if ($a == 5): ?>
A is equal to 5
<?php endif; ?>

在上面的例子中,HTML 内容“A is equal to 5”用替代语法嵌套在 if 语句中。该 HTML 的内容仅在 $a 等于 5 时显示。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题