PHP中单引号与双引号有什么区别

来源:互联网 发布:淘宝盗用图片怎么投诉 编辑:程序博客网 时间:2024/06/06 12:36

     在PHP中,如果只是用于没有包含变量的文本型数据,单引号和双引号是没有什么区别的。但如果要使用变量,单引号和双引号就有区别了。下面分三点开始讨论:

     1、在PHP中,双引号里可以直接代入变量,而无需转定义或者其他符号,而单引号就不行。例如:

<?php

$a="hello";

echo "$a world!";

echo "<br>";

echo '$a world!';

?>

    运行结果为:

hello world!

$a world!

由此可以清楚的看出。

    2、在运行效率上,一般来说单引号的运行速度比双引号的快,原因在于双引号要先查找语句中是否有变量,而单引号则不用,因此,如果语句中没有代入变量尽量采用单引号。这是写程序一种习惯,时刻想着提高程序的效率。
    3、PHP语法分析器是用成对的引号来判断一个字符串的。因此,所有字符串必须使用同一种单或者双引号来定义开始和结束。下面的字串定义是不合法的:

$a='hello world";

$b="hello world';

    定义字符串时,只有一种引号被视为定义符,即单引号或双引号。于是,如果一个字符串由双引号开始,那么只有双引号被分析器解析。这样,你就可以在双引号串中包含任何其他字符,甚至单引号。下面的引号串都是合法的:

$a= "I am a 'single quote string' inside a double quote string";

$b = 'I am a "double quote string" inside a single quote string';

    当PHP遇到与串的开头相对应的引号时,便认为已经到了字符串尾部,于是:

"Why doesn't "this" work?"  

    此时编译器将出错。 

    要想输出Why doesn't "this" work?. 可以用到转义字符反斜杠\。此时编译器代码应为:

“Why doesn't \"this\" work?”.

    要想打印出反斜杠\,可以在代码中这样写:

$a="H:Program\\wamp";

    运行结果为:

H:Program\wamp


原创粉丝点击