我可以在 PHP 中使用什么来代替'
周围的正常符号和(不带 ' 或 ") 符号?
例子:
echo("Hello, World!")
封装字符串有 4 种方式,单引号'
、双引号"
、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;
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?