定界符的语法:该当在<<<之后供应一个标识符号,然后是包含的字符串,末了是同样的的标识符结束字符串。结束标识符必须从行的第一列开始,并且后面
除了分号之外不能包含任何字符,空格以及空缺制表符都不可以。同样,定界标记利用的标识符也必须遵照PHP中其他任何标签的命名规则,只能包含字母数字
下划线,而且必须以下画线或非数字字符开始。

<?php$str= <<< EOT此种形式便是双引号定界符, 这里是包含在定界符中的字符串,指出了定界符的一些利用时把稳的事变。很主要的一点必须指出,结束标识符EOT所在的行不能包含任何其他字符。这尤其意味着该标识符不能被缩进,而且在结束标记的分号之前和之后都不能有任何空格或制表符。同样主要的是,要意识到在结束标识符之前的第一个字符必须是你的操纵系统中定义的换行符。如果毁坏了这条规则使得结束标识符不"干净",则它不会被视为结束标识符,php将连续探求下去。如果在这种情形找不到得当的结束标识符,将会导致一个在脚本末了一行涌现的语法缺点。EOT;echo $str;?>
定界符除了不能初使化类成员以外, 表现的就和双引号字符串一样, 只是没有双引号。这意味着在定界符文本中不须要转义引号, 不过仍旧可以用以上列出来的
在双引号可以利用的转义符号,而且定界符中的变量也会被解析。
把稳:结束标识符所在的行的分号后面为了保持"干净", 可以按"ENTER"回车键或方向键定位到下方连续输入代码, 但不能利用"space"空格键;
同样, 开始定界符后面(EOT)不能有空格, 必须按"ENTER"回车键或方向键定位到下方连续输入文本, 而"<<<"前后可以保留空格
//利用界定符输出变量$name = "MyName";echo <<<EOTMy name is $name.I am printing a "string"\n.\tNow,I am printing some new line \n\r.\tThis should print a capital 'A'EOT;
输出结果:My name is MyName.I am printing a "string" . Now,I am printing some new line . This should print a capital 'A'
总结:
变量会解析
可以用转义字(除单引号和双引号)
在定界符文本中不须要转义引号(单引号和双引号)
转义字符 序列 含义
\n 换行(LF 或 ASCII 字符 0x0A(10))
\r 回车(CR 或 ASCII 字符 0x0D(13))
\t 水平制表符(HT 或 ASCII 字符 0x09(9))
\\ 反斜线
\$ 美元符号
\" 双引号
\[0-7]{1,3} 此正则表达式序列匹配一个用八进制符号表示的字符
\x[0-9A-Fa-f]{1,2} 此正则表达式序列匹配一个用十六进制符号表示的字符
PHP中转义字符(非打印字符)只能在php解析后, 在浏览器中查看代码才能看到效果。
换行符
换行符: unix系列用\n, windows系列用\r\n, mac用\r
PHP中可以用PHP_EOL来替代, 以提高代码的源代码级可移植性
如:
<?phpecho "one", PHP_EOL, "two", PHP_EOL, "three"; //显示结果: one two three?>
查看源代码:
one
two
three
单引号和双引号定界符(PHP 5.3.0中加入的, 新增了单引号定界符和双引号定界符(便是定界符))
单引号定界符(Nowdoc构造): 既没有转义符, 也不能识别变量。
这种构造很适宜用于嵌入PHP代码或其它大段文本而无需对个中的分外字符进行转义;
双引号定界符(Heredoc构造):可用(识别)转义符: \\, \n, \r, \t, \$
可以识别个中的变量--但把稳其识别的范围
在PHP5.3.0往后, 也可以用定界符来初始化静态变量和类的属性和常量:
理解双引号定界符便是先前的定界符:
<?phpecho <<<"FOOBAR"Hello World!FOOBAR;?>
等同于
<?phpecho <<<FOOBARHello World!FOOBAR;?>
以上两种都称为Heredoc构造, 自php5.3.0起支持初使化静态变量和类的属性和常量
<?php//双引号定界符字符串(heredoc)://个中可以识别的转义符有:\\(表示一个\) \n(换行) \r(回车) \t(制表符) \$$str3 = <<<"HHHH"这个范围的任何内容都是字符串的内容可以随意换行,利用tab符: (这里之前有2个tab)单双引号也可以随便用:"fafaf", 'fafa'个中"HHHH"是自己可以任意给定的一个“字符串”而已。下一行,必须尊照这个哀求:只有该字符串本身和一个分号(;)HHHH;echo "\n\n<br />\n\n";echo $str3;//单引号定界符字符串(nowdoc)://个中可以识别的转义符有:没有(即没有分外表达的字符)$str4 = <<<'mm'这个范围的任何内容都是字符串的内容可以随意换行,利用tab符: (这里之前有2个tab)单双引号也可以随便用:"fafaf", 'fafa'个中'mm'是自己可以任意给定的一个“字符串”而已。下一行,必须尊照这个哀求:只有该字符串本身和一个分号(;)mm;echo "\n\n<br />\n\n";echo $str4;?>