带有?>;的PHP文本输出;在函数定义中
在过去编写PHP代码时,我经常会感到尴尬,因为我不得不将HTML代码嵌套在打印、回显或类似的调用中。通过关闭PHP标记并在输出后重新打开它,可以使部分代码真正输出,这在一定程度上缓解了这种情况,例如:带有?>;的PHP文本输出;在函数定义中,php,html,function,inline-code,Php,Html,Function,Inline Code,在过去编写PHP代码时,我经常会感到尴尬,因为我不得不将HTML代码嵌套在打印、回显或类似的调用中。通过关闭PHP标记并在输出后重新打开它,可以使部分代码真正输出,这在一定程度上缓解了这种情况,例如: <?php /*DoSomeStuff*/ ?> Some HTML code. <?php /*SomeMorePHP*/ ?> 一些HTML代码。 然而,我一直不清楚这个函数是如何相互作用的。例如,我不清楚是否写: <?php function myFunc
<?php /*DoSomeStuff*/ ?>
Some HTML code.
<?php /*SomeMorePHP*/ ?>
一些HTML代码。
然而,我一直不清楚这个函数是如何相互作用的。例如,我不清楚是否写:
<?php
function myFunction() {
?>
Some HTML
<?php
}
?>
一些HTML
将生成一个函数,该函数在被调用时将输出该HTML,如果该函数将被解析为空,但在解析过程中输出该HTML,或者两者都不输出,或者如果该构造完全非法
我不愿意将我的所有结果都建立在某个特定的PHP实例上,因为我不希望认为它可以工作,而实际上它可能是未定义的行为,或者认为它不工作,而我可能只是有一个旧的或有缺陷的PHP,我从来没有在任何代码中使用过这种构造
理想情况下,我正在寻找某种文档或规范的参考资料,以澄清这一问题。我知道这并不是用大量参考资料来准确回答您的问题,但是:这是有效的(),虽然看起来不太好,但在一些旧的但大型框架中,这是一种常见的做法 您可以尝试一下,看看会发生什么:
function htmlOut() {
?>
Some HTML output
<?php
}
htmlOut();
函数htmlOut(){
?>
一些HTML输出
基本上,它将按您预期的方式工作,这意味着此HTML将仅在函数调用时打印
可能没有针对您的用例的文档,但它类似于条件表达式
您可以询问以下代码的类似问题:
<?php if ($expression == true): ?>
HTML1
<?php else: ?>
HTML2
<?php endif; ?>
HTML1
HTML2
PHP会打印两个HTML部分,还是只打印一个取决于条件?
嗯,医生说得很清楚,它的工作原理与预期相符。
我想我们可以说函数/方法也是一样的,因为它只是“一块代码”。在许多其他情况下,如循环或开关,它使用相同的规则
参考:示例#1为什么不运行代码看看会发生什么,有一个超级秘密但完美的文档名为php.net,您可能需要参考:p这可能会有所帮助-。现代最佳实践建议您不应该在php中嵌入html代码,或者反过来。@deeznutz如我所说,我不愿意依赖于这样的运行me代码,它可能工作,但只是由于一个错误或特定版本,但实际上没有很好的定义。或者可能不工作,因为一个特定的QAR版本或错误,而不是很好的代码。我看过php.net,但没有找到任何关于这方面的内容。@Calimero我完全理解那里的想法。但在许多情况下,这不是一个简单的选择,尤其是在处理已经存在较大结构问题的项目时。我经常尝试在不破坏整个代码结构的情况下尽可能使事情整洁。感谢您找到一个使用此结构的常用脚本示例。这给了我很大的信心,它不可能只是一个实现错误。
<?php if ($expression == true): ?>
HTML1
<?php else: ?>
HTML2
<?php endif; ?>