云计算、AI、云原生、大数据等一站式技术学习平台

网站首页 > 教程文章 正文

定界符文本和转义字符(参考)

jxf315 2025-03-11 17:16:24 教程文章 21 ℃

定界符

定界符的语法:应该在<<<之后提供一个标识符号,然后是包含的字符串,最后是同样的的标识符结束字符串。结束标识符必须从行的第一列开始,并且后面

除了分号之外不能包含任何字符,空格以及空白制表符都不可以。同样,定界标记使用的标识符也必须遵循PHP中其他任何标签的命名规则,只能包含字母数字

下划线,而且必须以下画线或非数字字符开始。

<?php
$str= <<< eot eot php eot echo str>

定界符除了不能初使化类成员以外, 表现的就和双引号字符串一样, 只是没有双引号。这意味着在定界符文本中不需要转义引号, 不过仍然可以用以上列出来的

在双引号可以使用的转义符号,而且定界符中的变量也会被解析。

注意:结束标识符所在的行的分号后面为了保持"干净", 可以按"ENTER"回车键或方向键定位到下方继续输入代码, 但不能使用"space"空格键;

同样, 开始定界符后面(EOT)不能有空格, 必须按"ENTER"回车键或方向键定位到下方继续输入文本, 而"<<<"前后可以保留空格

//使用界定符输出变量
$name = "MyName";
echo <<<EOT
My 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来替代, 以提高代码的源代码级可移植性

如:

查看源代码:

one

two

three

单引号和双引号定界符(PHP 5.3.0中加入的, 新增了单引号定界符和双引号定界符(就是定界符))

单引号定界符(Nowdoc结构): 既没有转义符, 也不能识别变量。

这种结构很适合用于嵌入PHP代码或其它大段文本而无需对其中的特殊字符进行转义;

双引号定界符(Heredoc结构):可用(识别)转义符: \\, \n, \r, \t, \$

可以识别其中的变量--但注意其识别的范围

在PHP5.3.0以后, 也可以用定界符来初始化静态变量和类的属性和常量:

理解双引号定界符就是先前的定界符:

<?php
echo <<<"foobar" hello world foobar>

等同于

<?php
echo <<

以上两种都称为Heredoc结构, 自php5.3.0起支持初使化静态变量和类的属性和常量

<?php
//双引号定界符字符串(heredoc):
//其中可以识别的转义符有:\\(表示一个\) \n(换行) \r(回车) \t(制表符) \$
$str3 = <<<"HHHH"
这个范围的任何内容都是字符串的内容
可以随意换行,使用tab符: (这里之前有2个tab)
单双引号也可以随便用:"fafaf", 'fafa'
其中"HHHH"是自己可以任意给定的一个“字符串”而已。
下一行,必须尊照这个要求:只有该字符串本身和一个分号(;)
HHHH;
echo "\n\n
\n\n"; echo $str3; //单引号定界符字符串(nowdoc): //其中可以识别的转义符有:没有(即没有特殊表达的字符) $str4 = <<<'mm' 这个范围的任何内容都是字符串的内容 可以随意换行,使用tab符: (这里之前有2个tab) 单双引号也可以随便用:"fafaf", 'fafa' 其中'mm'是自己可以任意给定的一个“字符串”而已。 下一行,必须尊照这个要求:只有该字符串本身和一个分号(;) mm; echo "\n\n
\n\n"; echo $str4; ?>
最近发表
标签列表