PHP 中的转义引号
本文将介绍 PHP 中字符串转义引号的方法。
在引号前使用反斜杠 \
来转义引号
我们可以使用反斜杠 \
来转义 PHP 中的特殊字符。当我们尝试在 PHP 中的字符串中加入引号时,脚本会抛出解析错误。因此,我们需要对引号进行转义,以便脚本执行时不会出现任何错误。当我们需要打印包含直接语音的字符串时,我们可以使用这种技术。让我们考虑一个直接引语句子,She asked me, " Are you going out tonight ?".
。当我们打印这个字符串时,会抛出一个解析错误。这是因为整个字符串将被包裹在 " "
双引号内。当在代码流程中遇到 Are
之前的双引号时,编译器不希望在它之后出现字符串。它更希望使用分号或连接运算符。因此,编译器会抛出解析错误。
例如,在包含文本 Are you going out today ?
的两个双引号之前写反斜杠。分配变量 $text
中的字符串并使用 echo
命令打印该变量。因此,它将显示带有双引号的完整直接语音句子。
示例代码:
#php 7.x
<?php
$text = "She asked me, \" Are you going out tonight ?\"";
echo $text
?>
输出:
She asked me, " Are you going out tonight ?".
在 PHP 中使用 Heredoc 语法 <<<
从字符串中转义引号
我们可以使用 heredoc 语法 <<<
来转义 PHP 字符串中的引号。在新行中的语法和字符串之后紧跟一个标识符。标识符内的字符串或文本称为 heredoc 文本。我们应该在第一列的新行中的字符串之后使用相同的标识符来表示 heredoc 的结尾。我们应该在结束标识符之后使用分号来表示结束。Heredoc 文本被认为是在双引号内,而不使用双引号。Heredoc 文本中的双引号和单引号会自动转义。我们仍然可以在 heredocs 中使用变量并给它们加上引号。
例如,创建两个变量 $start
和 $end
,以存储字符串 hello
和 goodbye
。创建另一个变量 $heredoc
并将 heredoc 语法 <<<
写入其中。在语法之后写一个标识符 term
。在下一行,写下 heredoc 文本。在文本的开头用双引号将 $start
变量括起来。编写文本 We can use the "heredocs" to incorporate the 'single quotes' and the "double quotes" in a string.
。注意将单词 heredocs
和 double qoutes
用双引号括起来,将单词 single quote
用单引号括起来,如上所述。最后,用双引号将 $end
变量括起来。在下一行中,在结束 heredoc 后用分号写入 term
标识符。然后,打印 $heredoc
变量。
上面的示例输出带有单引号和双引号的文本。使用 heredoc 语法 <<<
可以很容易地从 PHP 中的字符串中转义引号。请查看 PHP 手册 以了解有关 heredoc 的更多信息。
代码示例:
#php 7.x
<?php
$start = "hello";
$end = "goodbye";
$heredoc = <<<term
"$start", We can use the "heredocs" to incorporate the 'single quote' and the "double quotes" in a string. "$end".
term;
echo $heredoc;
?>
输出:
"hello", We can use the "heredocs" to incorporate the 'single quote' and the "double quotes" in a string. "goodbye".
交替使用单引号或双引号来转义 PHP 中的引号
我们可以使用双引号转义单引号,使用单引号转义双引号。因此,我们可以在 PHP 中对字符串中的引号进行转义。在字符串中使用双引号和单引号时略有不同。我们可以在使用双引号时执行字符串插值,但单引号不允许这样做。插值是一种引用字符串中的变量来评估它们的值的方法。
例如,写一个字符串 Over and over again
用单引号括起来。用双引号将 over
括起来。使用 echo
命令显示字符串。在下一行中,用双引号将相同的字符串括起来,并使用单引号将相同的单词 over
括起来。打印字符串。
在下面的示例中,双引号在第一个字符串中被转义,单引号在第二个字符串中被转义。由于使用备用引号来包装整个字符串,因此是可能的。
示例代码:
# php 7.x
<?php
echo 'Over and "over" again'."<br>";
echo "Over and 'over' again";
?>
输出:
Over and "over" again
Over and 'over' again
Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.
LinkedIn