gpt4 book ai didi

函数定义中带有 ?> 的 PHP 文字输出

转载 作者:可可西里 更新时间:2023-10-31 23:18:05 24 4
gpt4 key购买 nike

在过去编写 PHP 代码时,我经常被必须将我的 HTML 代码嵌套在打印、回显或类似的调用中的尴尬所困扰。通过关闭 PHP 标记并在输出后重新打开它来使部分代码按字面输出的能力在一定程度上缓解了这种情况,例如:

<?php /*DoSomeStuff*/ ?>
Some HTML code.
<?php /*SomeMorePHP*/ ?>

但是,我一直不清楚这如何与函数交互。例如,我不清楚是否写:

<?php
function myFunction() {
?>
Some HTML
<?php
}
?>

如果函数将被解析为空但在解析期间输出该 HTML,将生成一个函数,该函数在被调用时将输出该 HTML,或者两者都不是,或者如果此构造完全非法?

我不愿意将我的所有结果都建立在仅在某个特定的 PHP 实例上尝试这个的基础上,因为我不希望相信它有效,而实际上它可能是未定义的行为,或者认为它不起作用而我可能只是有一个旧的或有问题的 PHP,我从未在任何代码中看到过这种结构。

理想情况下,我正在寻找某种可以澄清这一点的文档或规范引用。

最佳答案

我知道这并不能完全通过大量引用来回答你的问题,但是:这是有效的(PHP Docs),虽然它看起来不太好,但它是一些 但大框架。

你可以试试这个,看看会发生什么:

function htmlOut() {
?>
Some HTML output
<?php
}


htmlOut();

顺便说一下,我找到了一个示例,MediaWiki 的默认皮肤(我会说他们知道自己在做什么)正在使用您描述的方法。

/**
* Outputs the entire contents of the (X)HTML page
*/
public function execute() {
/**
* some code
*/
// Output HTML Page
$this->html( 'headelement' );
?>
<div id="mw-page-base" class="noprint"></div>
<div id="mw-head-base" class="noprint"></div>
<div id="content" class="mw-body" role="main">
<a id="top"></a>

<?php
/**
* some more code
*/
}

请在此处查看完整代码:MediaWiki GitHub

关于函数定义中带有 ?> 的 PHP 文字输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33868386/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com