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

时间:2012-06-04 19:13:02

标签: php string symbols

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

示例:

echo("Hello World!")

谢谢!

1 个答案:

答案 0 :(得分:28)

有四种方法可以封装字符串,单引号',双引号"heredocnowdoc

阅读full php.net article here

定界符

  

分隔字符串的第三种方法是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;

Nowdoc

  

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

     

对nowdoc标识相同的&lt;&lt;&lt;&lt;用于heredocs的序列,但后面的标识符用单引号括起来,例如&LT;&LT;&LT; '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;

逃逸

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

$str = '\''; // single quote
$str = "\""; // double quote

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


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

$str = "Is your name O'reilly?";
echo addslashes($str); // Is your name O\'reilly?