程序员人生 网站导航

php中单引号与双引号的区别

栏目:php教程时间:2014-03-02 11:18:53

引号中,任何变量($var)、特殊转义字符(如“t r n”等)不会被解析,因此php的解析速度更快,转义字符仅仅支持“’”和“”这样对单引号和反斜杠本身的转义;

在字串中使用变量

这个功能让你无须使用连接符号来粘和大量的简单字符串,php允许我们在双引号串中直接包含字符串变量,我们可以发现下面的两个字串的处理结果是相同的。

$full_name = $first_name . ' ' . $last_name;

$full_name = "$first_name $last_name";

单引号串和双引号串在php中的处理是不相同的。双引号串中的内容可以被解释而且替换,而单引号串中的内容总被认为是普通字符。例如:在字符串中引用复杂的变量组合时,可能会产生一些问题,下面的代码会正常工作:

echo "value = $foo";echo "value = $a[$i]";

而下面的代码却不能得到我们希望的结果:

echo "value = $a[$i][$j]"; //我们希望打印二维数组$a的某个元素。

为避免这些字串使用中的潜在问题,我们通常把复杂的变量从字串中分离开来,就像这样:

echo 'value = ' . $a[$i][$j];

还有一种办法是将复杂变量用花括号括起来,语法分析器就能正确辨认了:

echo "value = {$a[$i][$j]}" //打印二维数组$a的某个元素

这样,又出现新问题了。当我们想在字串中引用花括号字符本身时,就要记得使用转义符了:

  1. $var = 3; 
  2. echo "value = {$var}"// 打印结果 "value = 3" 
  3. echo "value = {$var}"// 打印结果 "value = {3}" 
  4. $foo = 2; 
  5. echo "foo is $foo"// 打印结果: foo is 2 
  6. echo 'foo is $foo'// 打印结果: foo is $foo 
  7. echo "foo is $foon"// 打印结果: foo is 2 (同时换行) 
  8. echo 'foo is $foon'// 打印结果: foo is $foon 

双引号中,变量($var)值会代入字符串中,特殊转义字符也会被解析成特定的单个字符,还有一些专门针对上述两项特性的特殊功能性转义,例如“$”和“{$array[‘key’]}。这样虽然程序编写更加方便,但同时php的解析也很慢;

引号内部的变量不会执行,双引号会执行,如:

  1. $name = 'hello'
  2. echo "the $name"

会输出 the hello,而如果是单引号:

  1. $name = 'hello'
  2. echo 'the $name'

会输出 the $name,主要区别就是这个,其他的无所谓,看你自己喜欢了,推荐是保持一致,如用单引号其他地方保持一致就可以了.

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐