php定界符heredoc和nowdoc使用技巧

        以前,在php中写html代码,一般都是如下形式。

echo '<div>hello world!</div>';

        上面形式对于代码量少的html还好说,一旦是整段的出现,那可就不妙了。后来网上看到有人用heredoc定界符来处理,试了下,很方便。

$html = <<<EOT
             <!--guider-->
            <div class="tguider">
                <div class="tgstep1">
                    <ul class="tg_step"><li class="on">●</li><li>●</li><li>●</li><li>●</li><li>●</li><li>●</li><li>●</li><li>●</li></ul>
                    <p><a class="tg_btn">继续引导</a><a class="tg_close">退出引导</a></p>
                </div>
                <div class="tgstep2">
                    <ul class="tg_step"><li>●</li><li class="on">●</li><li>●</li><li>●</li><li>●</li><li>●</li><li>●</li><li>●</li></ul>
                    <p><a class="tg_btn">继续引导</a><a class="tg_close">退出引导</a></p>
                </div>
                <div class="tgstep3">
                    <ul class="tg_step"><li>●</li><li>●</li><li class="on">●</li><li>●</li><li>●</li><li>●</li><li>●</li><li>●</li></ul>
                    <p><a class="tg_btn">继续引导</a><a class="tg_close">退出引导</a></p>
                </div>
                <div class="tgstep4">
                    <ul class="tg_step"><li>●</li><li>●</li><li>●</li><li class="on">●</li><li>●</li><li>●</li><li>●</li><li>●</li></ul>
                    <p><a class="tg_btn">继续引导</a><a class="tg_close">退出引导</a></p>
                </div>
                <div class="tgstep5">
                    <ul class="tg_step"><li>●</li><li>●</li><li>●</li><li>●</li><li class="on">●</li><li>●</li><li>●</li><li>●</li></ul>
                    <p><a class="tg_btn">继续引导</a><a class="tg_close">退出引导</a></p>
                </div>
                <div class="tgstep6">
                    <ul class="tg_step"><li>●</li><li>●</li><li>●</li><li>●</li><li>●</li><li class="on">●</li><li>●</li><li>●</li></ul>
                    <p><a class="tg_btn">继续引导</a><a class="tg_close">退出引导</a></p>
                </div>
                <div class="tgstep7">
                    <ul class="tg_step"><li>●</li><li>●</li><li>●</li><li>●</li><li>●</li><li>●</li><li class="on">●</li><li>●</li></ul>
                    <p><a class="tg_btn">继续引导</a><a class="tg_close">退出引导</a></p>
                </div>
                <div class="tgstep8">
                    <ul class="tg_step"><li>●</li><li>●</li><li>●</li><li>●</li><li>●</li><li>●</li><li>●</li><li class="on">●</li></ul>
                    <p><a class="tg_btn">继续引导</a><a class="tg_close">退出引导</a></p>
                </div>
            </div>
            <div class="overlay"></div>
            <script type="text/javascript">
                /*引导*/
                //$(".tguider").guiderJs();
            </script>
EOT;

        echo $html;

        看,就是定义的第一行最后结束行不同,中间的都是html+js代码,而且,如果html代码中要加入php变量的话,只需{$variable}这样写。


        与heredoc对应的是nowdoc,后者解析起来更快,相当于双引号和单引号的区别。使用场景为在脚本中生成php文件,若是用heredoc是有问题的,里面的变量会解析,而dowdoc则没有此问题,看看示例


<?php

$content = <<<'EOT'
<?php
define("APP_PATH",  realpath(dirname(__FILE__) . '/../')); /* 指向public的上一级 */
$app  = new Yaf_Application(APP_PATH . "/conf/application.ini");
$app->run();
?>
EOT;

echo $content;
?>

        输出

<?php
define("APP_PATH",  realpath(dirname(__FILE__) . '/../')); /* 指向public的上一级 */
$app  = new Yaf_Application(APP_PATH . "/conf/application.ini");
$app->run();
?>

        当然了,掌握定界符的写法规范也很重要,尤其是结束符前面不能有空格,否则就会报错。

Parse error: syntax error, unexpected $end in E:\www\test\1401\21.php on line 46
  同时那个EOT也可以换成其他字符串,当然了开头结尾都应该是该字符串,也就是成对出现。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值