zoukankan      html  css  js  c++  java
  • PHP中的定界符格式

    <?php
    //nowdoc(单引号定界符)
    //ABC可以是任合内容,放在单引号中
    $c=<<<'ABC'
    这里可以是任合内容
    我是历的苛夺基
    本原则叶落归根在运
    输费艰难田¥¥&……
    ABC;
    echo $c;
    ?>
    <?php
    //heredoc(双引号定界符)
    //ABC可以是任合内容,放在双引号中或是不加引号
    $c=<<<ABC
    这里可以是任合内容
    我是历的苛夺基
    本原则叶落归根在运
    输费艰难田¥¥&……
    ABC;
    echo $c;
    ?>

    如果用传统的输出方法——按字符串输出的话,肯定要有大量的转义符来对字符串中的引号等特殊字符进行转义,以免出现语法错误。如果是一两处还可以容忍,但是要是一个完整的html文本或者是一个200行的js我想是谁都会崩溃的。这就是PHP为什么要引入一个定界符的原因——至少一大部分原因是这样的。
    1.PHP定界符的作用就是按照原样,包括换行格式什么的,输出在其内部的东西;
    2.在PHP定界符中的任何特殊字符都不需要转义;
    3.PHP定界符中的PHP变量会被正常的用其值来替换。
    PHP中的定界符格式是这样的: 


    <<<Eof
    ……
    Eof;


    看起来很简单,但是其中有许多地方需要注意。
    首先在<<<之后的字符Eof是自己定义的,随便什么都是可以的(比如AAA都可以),但是结尾处的字符一定要和他一样,他们是成对出现的,就像{}这样的——这是最基本的。
    在PHP定界符使用的过程中,第二个需要注意的问题——也是最经常出现问题的地方:
    结尾的一行(如上例的Eof;),一定要另起一行,并且改行除了Eof;这个定界符结尾标识之外不能有任何其他字符,前后都不能有,包括空格。如果在本行最前或者最后出现空格,制表符的话,你会收到一个这样的错误信息:
    Parse error: parse error, unexpected $end in……,提示你语法错误;
    第三个需要注意的是,如果在定界符中间出现有PHP的变量,你只需要像在其它字符串中输出一样写就行了,例如 


    <<<Eof
    hello{$name}
    Eof;


    变量$name之所以要用{}括起来是要告诉PHP解析器这是一个PHP变量,其实不用也是可以的,但是有可能会产生歧义,例如你的变量后面刚好不是一字母或者特殊符号什么的会怎么样呢?千万不能有这样的写法 

    <<<Eof
    hello<?php echo $name?>
    Eof;


    这样的情况,你同样会收到一个语法错误的信息。先便是一个战地测试过的PHP定界符的正确写法。里面包含了,html和javascript的代码: 


    <?php 
    $name = 'kitty'; 
    echo <<<Eof 
    <table height="20"> 
    <tr><td> 
    {$name}<br/> 
    <script> 
    var p='hello world'; 
    document.writeln(p); 
    </script> 
    </td></tr> 
    </table> 
    Eof; 
    ?> 

     
  • 相关阅读:
    Stochastic Gradient Descent
    混合高斯模型(Mixtures of Gaussians)和EM算法
    支持向量机通俗导论(理解SVM的三层境界)
    第十二课、计算器的核心解析算法(上)------------------狄泰软件学院
    第十一课、Qt中的字符串类------------------狄泰软件学院
    第十课、初探Qt的消息处理------------------狄泰软件学院
    第九课、计算器界面代码重构------------------狄泰软件学院
    第八课、启航!第一个应用程序------------------狄泰软件学院
    第七课、Qt中的坐标系统------------------狄泰软件学院
    第六课、窗口组件及窗口类型------------------狄泰软件学院
  • 原文地址:https://www.cnblogs.com/zywf/p/4912159.html
Copyright © 2011-2022 走看看