【发布时间】:2014-10-17 04:51:09
【问题描述】:
我惊讶地发现您可以将 PHP 函数分解为原始 HTML 并返回。我知道你可以用循环和条件来做这种事情,但这对我来说是一个惊喜。这是一个意外还是这是定义明确的行为? (我在手册中找不到任何关于函数案例的明确讨论。)
[注意:下面的代码没有给出一个很好的例子来说明我什么时候会使用这种行为,但为了演示目的,我保持简单。]
<?php
$i = 0;
while($i++ < 3) {
?><p>I am in a while loop.</p><?php
}
// this part surprised me
function actSkeptical($adjective) {
?><p>Is it <?= $adjective ?> that this works?.</p><?php
}
actSkeptical("weird");
?>
输出:
I am in a while loop.
I am in a while loop.
I am in a while loop.
Is it weird that this works?
我知道有些人绝对讨厌像这样混合 PHP 和 HTML,但我不能做 OOP/模板(因为我不会在这里讨论的原因),我喜欢看到尽可能多的原始 HTML。
另外,我不太了解上面的短打开/关闭标记(输出$adjective)如何与周围代码一起工作的语义。 PHP 是否只是将原始 HTML 视为 echo 语句?然后<?= $adjective ?> 就像在字符串中包含一个变量?
【问题讨论】:
-
您正在查看 PHP 的行为。它不漂亮,我不建议这样编码,但如果你认为有必要,它就可以使用。基本上,PHP 不关心
<?php ?>标记之外的任何内容,PHP 之外的任何内容都会发送到浏览器。 -
@Tieson 谢谢,但我已经读过了,不幸的是它没有提到功能。
-
@suchit 我看到很多人在混合 HTML 和 PHP 时使用 while/if/etc 的替代语法。除了认为它更具可读性之外,还有什么理由吗?