在PHP中编写字符串文字的替代方法?(没有'或')

13 php string symbols

我可以在php中使用什么来代替某些东西的正常'和'符号?

例:

echo("Hello World!")
Run Code Online (Sandbox Code Playgroud)

谢谢!

Jer*_*oen 31

有四种方法可以封装字符串,单引号',双引号",heredoc和nowdoc.

阅读完整的php.net文章.

定界符

分隔字符串的第三种方法是heredoc语法:<<<.在此运算符之后,提供标识符,然后提供换行符.字符串本身跟随,然后再次使用相同的标识符来关闭引号.

http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc

$str = <<<EOD
Example of string
spanning multiple lines
using heredoc syntax.
EOD;
Run Code Online (Sandbox Code Playgroud)

Nowdoc

Nowdocs是单引号字符串,heredocs是双引号字符串.类似于heredoc指定了nowdoc,但是在nowdoc内部没有进行解析.该构造非常适合嵌入PHP代码或其他大块文本而无需转义.它与SGML构造共享一些共同的特性,因为它声明了一个不用于解析的文本块.

nowdoc用与用于heredocs相同的<<<序列标识,但后面的标识符用单引号括起来,例如<<<'EOT'.heredoc标识符的所有规则也适用于nowdoc标识符,尤其是关于结束标识符外观的标识符.

http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.nowdoc

$str = <<<'EOD'
Example of string
spanning multiple lines
using nowdoc syntax.
EOD;
Run Code Online (Sandbox Code Playgroud)

逃离

如果要在单引号或双引号字符串中使用文字单引号或双引号,则必须转义它们:

$str = '\''; // single quote
$str = "\""; // double quote
Run Code Online (Sandbox Code Playgroud)

正如Herbert所说,你不必在双引号字符串中转义单引号,也不必在单引号字符串中转义双引号.


如果必须大规模添加引号,请使用addslashes()函数:

$str = "Is your name O'reilly?";
echo addslashes($str); // Is your name O\'reilly?
Run Code Online (Sandbox Code Playgroud)