14

我可以在 PHP 中使用什么来代替'周围的正常符号和(不带 ' 或 ") 符号?

例子:

echo("Hello, World!")
4

1 回答 1

32

封装字符串有 4 种方式,单引号'、双引号"heredocnowdoc

在此处阅读完整的 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;

诺多克

Nowdocs 是单引号字符串,就像 heredocs 是双引号字符串。nowdoc 的指定与heredoc 类似,但在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;

逃跑

如果要在单引号或双引号字符串中使用文字单引号或双引号,则必须对其进行转义:

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

正如 Herbert 所指出的,您不必在双引号字符串中转义单引号,也不必在单引号字符串中转义双引号。


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

$str = "Is your name O'reilly?";
echo addslashes($str); // Is your name O\'reilly?
于 2012-06-04T19:14:17.133 回答