PHP中的反斜杠字符

时间:2013-03-14 21:12:47

标签: php styles inline backslash

我不明白以下一行中两个反斜杠的功能......

echo "<p style=\"font-family: $font; font-size: {$size}em;\">Hello, world!</p>";

此代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
        <title>Saying hello with style</title>
        <link rel="stylesheet" type="text/css" href="common.css" />
    </head>
    <body>
        <h1>Saying hello with style</h1>

<?php

function helloWithStyle( $font, $size ) {
    echo "<p style=\"font-family: $font; font-size: {$size}em;\">Hello, world!</p>";
}

helloWithStyle( "Helvetica", 2 );
helloWithStyle( "Times", 3 );
helloWithStyle( "Courier", 1.5 );

?>

    </body>
</html>

删除两个反斜杠会导致“期待,或者”;粘贴在上面的代码行上的错误。这是为什么?

谢谢

4 个答案:

答案 0 :(得分:2)

反斜杠\是一个转义字符,允许输出字符串而不会出错。

如果您使用双引号"启动字符串,则下次使用双引号时,它将有效地结束字符串。这同样适用于引用字符串的单引号'

如果您使用双引号"启动字符串,则可以在字符串中使用单引号'而不转义引号,反之亦然。

使用您的代码段作为示例,这些都是等效的:

echo "<p style=\"font-family: $font; font-size: {$size}em;\">Hello, world!</p>";

echo '<p style="font-family: $font; font-size: {$size}em;">Hello, world!</p>';

echo "<p style='font-family: $font; font-size: {$size}em;'>Hello, world!</p>";

PHP: Strings Documentation

答案 1 :(得分:1)

他们转义引号,因此它们不算作实际引号 - 否则它们标记字符串的结尾,其余的HTML被视为PHP代码,这显然不起作用。

请参阅documentation

答案 2 :(得分:0)

因为"标记表示字符串的开头和结尾。如果要在字符串中包含引号,则必须使用反斜杠字符对其进行转义,否则将其视为字符串的结尾,并且后面的内容在编码上下文中没有意义,因此会出错。

答案 3 :(得分:0)

这是因为你只使用双引号。 \是一个转义字符,允许php打印“不假设它是引用的结尾。更好的方法来写这行可能是

  echo '<p style="font-family: $font; font-size: {$size}em;">Hello, world!</p>';