加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-13 16:58:36 所属栏目:PHP教程 来源:网络整理
导读:在过去编写 PHP代码时,我常常一直困扰着将HTML代码嵌入到print,echo或类似调用中的尴尬.这在一定程度上通过关闭PHP标记并在输出后重新打开它来使字母输出部分代码的能力得到缓解,例如: ?php /*DoSomeStuff*/ ?Some HTML code.?php /*SomeMorePHP*/ ? 但是,
在过去编写 PHP代码时,我常常一直困扰着将HTML代码嵌入到print,echo或类似调用中的尴尬.这在一定程度上通过关闭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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读