php字符串heredoc和nowdoc详解

php中字符串可以用4种方式表达:单引号、双引号、heredoc、nowdoc。他们起着不同的作用。主要是对字符串中的转义字符和php变量的解析方式不同。
双引号和heredoc作用一样,是等价的。会解析变量和特殊字符。
单引号和nowdoc作用一样,是等价的。不会解析变量和特殊字符。

转义字符表

一、单引号
单引号的字符串里面包含的变量和转义字符不会被替换,会直接输出。
单引号里面可以有双引号,要表示一个单引号自身,需在它的前面加个反斜线(\)来转义。要表达一个反斜线自身,则用两个反斜线(\\)。
单引号中的PHP变量不会被解析,特殊符号 \r \n 会原样输出。

二、双引号
双引号的字符串里面包含的变量和特殊字符会被替换后再输出。
要表示双引号需要使用 \” 进行转义才能输出。

三、heredoc

第三种表达字符串的方法是用 heredoc 。
句法结构:在 <<< 该运算符之后要提供一个标识符,然后换行。接下来是字符串 string 本身,最后要用前面定义的标识符作为结束标志。
结束时所引用的标识符必须在该行的第一列,而且,标识符的命名也要像其它标签一样遵守 PHP 的规则:只能包含字母、数字和下划线,并且必须以字母和下划线作为开头。
标识符是开发人员自己定义的。
可以在 Heredoc 结构中用双引号来声明标识符。

四、nowdoc
Nowdoc 结构是类似于单引号字符串的。里面的变量和特殊字符不会被转义。
nowdoc 结构也用标记 <<<, 但是跟在后面的标识符要用单引号括起来,即 <<<'EOT'。Heredoc 结构的所有规则也同样适用于 nowdoc 结构,尤其是结束标识符的规则。五、实例

$name="javaidea"; //声明一个变量$str = "我是双引号字符串,\r\n我会解析特殊字符和变量$name";echo $str;$str2 = '我是单引号字符串,\r\n我会原样输出特殊字符和变量$name';echo $str2;$str3 =<<<"myidea"我是heredoc结构,等价于双引号\r\n我会解析特殊字符和变量$namemyidea;echo $str3;$str4 =<<<'myidea'我是nowdoc结构,等价于单引号\r\n我会忽略特殊字符和变量$namemyidea;echo $str4;

输出:

我是双引号字符串,
我会解析特殊字符和变量javaidea


我是单引号字符串,\r\n我会原样输出特殊字符和变量$name


我是heredoc结构,等价于双引号
我会解析特殊字符和变量javaidea


我是nowdoc结构,等价于单引号\r\n我会忽略特殊字符和变量$name

总结:heredoc 和 nowdoc 用法上的区别就是heredoc用双引号包裹标记符,nowdoc用单引号包裹标记符。
他们的作用和单引号和双引号是一样的,一般用于大段落的文本输出时使用。

如若转载,请注明出处:https://www.javaidea.cn/article/8092.html

(0)
上一篇 2022年2月7日 上午10:03
下一篇 2022年2月7日 上午10:03

相关推荐

发表评论

您的电子邮箱地址不会被公开。