关于php中单引号与双引号区别有那些很,至于大家都说的下面我用我的理解来说说关于单引号与双引号的区别所在吧,单引号在其中间的变量是不被执行的,把变量当成了一个普通的字符串,而双引号php会去解析中间有变量没有,有的话解析变量,这样双引号在一些方法更费服务器资源.
单引号和双引号大体相同,但有一点非常重要,就是变量引用问题,你把下面代码运行即可明白了,代码如下:
- <?php
- $x="中国";
- echo "我是$x人";
- echo "<br />";
- echo '我是$x人';
- ?>
变量用双引号括起来,单引号中的则不是(即单引号中的变量符号不解析),单引号内部的变量不会执行,双引号会执行,代码如下:
$name = 'hello';echo "the $name";,会输出 the hello,而如果是单引号,代码如下:
$name = 'hello';echo 'the $name';会输出 the $name,主要区别就是这个,在字符串中引用复杂的变量组合时,可能会产生一些问题,下面的代码会正常工作:
echo "value = $foo"; echo "value = $a[$i]";
而下面的代码却不能得到我们希望的结果:
echo "value = $a[$i][$j]"; //我们希望打印二维数组$a的某个元素.
为避免这些字串使用中的潜在问题,我们通常把复杂的变量从字串中分离开来,就像这样:
echo 'value = ' . $a[$i][$j];
还有一种办法是将复杂变量用花括号括起来,语法分析器就能正确辨认了:
echo "value = {$a[$i][$j]}" //打印二维数组$a的某个元素
这样,又出现新问题了,当我们想在字串中引用花括号字符本身时,就要记得使用转义符了:
- $var = 3;
- echo "value = {$var}";
- echo "value = {$var}";
看个实例,代码如下:
- $var1 = "chris mao";
- $var2 = &$var1;
- echo '<b>the value of $var2 is: </b>', $var2, "<br>";
- $var2 = 'my name is $var2';
- echo '<b>the value of $var1 is: </b>', $var1, "<br>";
- $var2 = "my new name is $var1";
- echo '<b>the value of $var2 is: </b>', $var2, "<br>";
- echo '<b>the value of $var1 is: </b>', $var1, "<br>";
|