HTML、JavaScript、PHP 中的单引号与双引号

2年前 (2023-01-31)

共同点:单引号和双引号都是用来标识字符串,并且成对出现。


一、HTML 中的单引号与双引号

    单独的HTML标签,单引号和双引号没有区别,甚至不需要它们来标识字符串。

<html>

<head>
    <meta charset="utf-8" />
</head>

<body>
    <input type=submit value=提交1 />           <!-- 正确(不推荐) -->
    <input type='submit' value='提交2' />       <!-- 正确 -->
    <input type="submit" value="提交3" />       <!-- 正确 -->
</body>

</html>


    在HTML中,像“<”和“>”这类符号已经用来表示HTML标签,不能直接使用。为了能在文件中使用这些字符,就定义了它们的转义字符(转义字符也称为字符实体)。当HTML解释程序遇到这些转义字符,就把它解释为真实的字符。在输入转义字符时,要严格遵守字母大小写的规则。另外,有些字符不在ASCII字符集中,也需要使用转义字符来表示。

    最常用的字符实体有:

    显示    说明     实体名称   实体编号   

<小于&lt;&#60;

>大于&gt;&#62;

&&符号&amp;&#38;

"双引号&quot;&#34;

'单引号
&#39;


半角空白&ensp;&#8194;


全角空白&emsp;&#8195;


不断行空白&nbsp;&#160;

©版权&copy;&#169;

®已注册商标&reg;&#174;

商标(美国)
&#8482;

×乘号&times;&#215;

÷除号&divide;&#247;

±
&plusmn;&#177;


&yen;&#165;


    字符实体使用示例:

<html>

<head>
    <meta charset="utf-8" />
</head>

<body>
    <input type=submit value=&lt;提交1&gt; />           <!-- <提交1> -->
    <input type='submit' value='&quot;提交2&quot;' />   <!-- "提交2" -->
    <input type="submit" value="提交&times;3" />        <!-- 提交×3 -->
</body>

</html>


二、JavaScript 中的单引号与双引号

    单引号和双引号都是用来标识字符串,没有区别。

    同HTML一样,为了表示那些不能直接使用的字符、不能显示的特殊字符,也定义了它们的转义字符。

    常用的转义字符有:

    转义字符  含义    

\b退格符

\t制表符(水平)

\v制表符(垂直)

\n换行符

\r回车符

\"双引号

\'单印号

\\反斜杠

\uhhhh十六进制编码的Unicode字符


    转义字符使用示例:

console.log('This is 科比');            // This is 科比
console.log("This is 泰森");            // This is 泰森
console.log('This is "凯文"');          // This is "凯文"
console.log("This is '德隆'");          // This is '德隆'
console.log('This is \'詹姆斯\'');      // This is '詹姆斯'
console.log("This is \"布雷克\"");      // This is "布雷克"
console.log('This is \"勒布朗\"');      // This is "勒布朗"
console.log("This is \'安德烈\'");      // This is '安德烈'
console.log('This is \\卡梅隆\\');      // This is \卡梅隆\


    在JavaScript和HTML混合编程的情况下,一定要区分清楚这段代码是归HTML管辖范围,还是JavaScript管辖范围?不同的管辖范围,使用不同的转义字符。

<html>

<head>
    <meta charset="utf-8" />
</head>

<body>
    <!-- 错误:外双引号、内双引号 -->
    <input value="按钮1" type="button" onclick="alert("按钮1");" />
    <!-- 错误:外单引号、内单引号 -->
    <input value="按钮2" type="button" onclick='alert('按钮2');' />
    <!-- 错误:JavaScript转义双引号 -->
    <input value="按钮3" type="button" onclick="alert(\"按钮3\");" />
    <!-- 错误:JavaScript转义单引号 -->
    <input value="按钮4" type="button" onclick='alert(\'按钮4\');' />

    <!-- 正确:双引号嵌套单引号 -->
    <input value="按钮5" type="button" onclick="alert('按钮5');" />
    <!-- 正确:单引号嵌套双引号 -->
    <input value="按钮6" type="button" onclick='alert("按钮6");' />

    <!-- 正确(不推荐):外面没有使用引号 -->
    <input value="按钮7" type="button" onclick=alert('按钮7'); />
    <!-- 正确(不推荐):HTML转义字符 -->
    <input value="按钮8" type="button" onclick="alert(&quot;按钮8&quot;);" />
</body>

</html>


三、PHP 中的单引号与双引号

    单引号和双引号都是用来标识字符串,但在PHP对单引号和双引号的处理是不同的。双引号会解析字符串中的变量,单引号不会;双引号会解析全部转义字符,单引号只解析单引号和反斜杠;双引号解析速度慢,单引号解析速度快。

    常用的转义字符有:

    转义字符  含义    

\t制表符(水平)

\v制表符(垂直)

\n换行符

\r回车符

\"双引号

\'单印号

\\反斜杠

\$美元符号


    示例代码如下:

<?php

$a = 'C语言';
$b = 'PHP';

//解析变量
echo "欢迎访问$a中文网<br>";        // 欢迎访问             【错误】
echo "欢迎访问{$a}中文网<br>";      // 欢迎访问C语言中文网
echo "$b 是世界上最好的语言<br>";   // PHP 是世界上最好的语言

//解析转义字符
echo "\"\$a\" 的值为:$a<br>";      // "$a" 的值为:C语言
echo '\'$b\' 的值为:' . $b;        // '$b' 的值为:PHP

    是否注意到标有错误的一行?

    需要注意的是,虽然双引号定义的字符串能够解析变量,但是如果变量后边还有字符串的话,就需要将变量与后面的字符串使用空格分开,或者使用大括号{ }将变量包裹起来。如果不这么做的话,很可能会造成意想不到的结果。

   上面的错误就是把“ $a中文网 ”当成 一个变量了,而这个变量并不存在!