【发布时间】:2011-06-04 11:05:16
【问题描述】:
可能重复:
Difference between single quote and double quote string in php
php中单引号'和双引号"有什么区别?我的想法是当一个人使用单引号时,它有一些核心价值需要在程序中使用,如果双引号它只是一个字符串。我说的对吗?
【问题讨论】:
标签: php
可能重复:
Difference between single quote and double quote string in php
php中单引号'和双引号"有什么区别?我的想法是当一个人使用单引号时,它有一些核心价值需要在程序中使用,如果双引号它只是一个字符串。我说的对吗?
【问题讨论】:
标签: php
最大的不同是,如果使用双引号,字符串内部的任何变量或特殊转义码都会被展开;而使用单引号,则不会发生扩展。
例子:
$var = "foobar";
echo $var; // "foobar"
echo '$var'; // "$var"
echo "$var"; // "foobar"
echo '\n'; // "\n"
echo "\n"; // prints an actual new line
有关差异的完整列表,请参阅有关字符串的 PHP 文档:http://us3.php.net/manual/en/language.types.string.php
【讨论】:
用双引号创建的字符串将被 PHP 解析,单引号中的字符串不会。还有其他区别,例如双引号中的字符串 PHP 将解释特殊字符的转义序列。 PHP manual 全面解释了这些差异。
例如,
$string = 'World';
echo 'Hello' . $string; // "Hello World"
echo "Hello $string"; // "Hello World"
echo 'Hello $string'; // "Hello $string"
【讨论】:
除了已经描述的变量扩展之外,双引号还解释\n(作为换行符)、\t(作为制表符)和其他转义序列defined in the manual。单引号仅将\\ 解释为一个反斜杠,\' 解释为单引号,其他组合按字面意思理解-即strlen('\n') == 2、strlen("\n") == 1
【讨论】:
这两者的主要区别在于用双引号创建的字符串会被 PHP 解析,而单引号不会。
// they both output 'Yahoo Google'
$str = 'Google';
echo 'Yahoo' . $str;
echo "Yahoo $str";
有关这些的更多信息,请参见下面的链接
【讨论】:
除了其他答案中提到的,如果你使用单引号',里面的双引号将被视为普通字符,不需要转义,反之亦然。
例如两者都会打印He said, "Hi there Jack"
echo 'He said, "Hi there Jack"';
echo "He said, \"Hi there Jack\"";
【讨论】: