單引號和雙引號大體相同,但有一點非常重要,,就是變量引用問題 ,你把下面代碼運行即可明白了
代碼如下 復制代碼<?php
$x="中國";
echo "我是$x人";//雙引號
echo "<br />";
echo '我是$x人';//單引號
?>
變量用雙引號括起來,單引號中的則不是(即單引號中的變量符號不解析)
單引號內部的變量不會執行
雙引號會執行
如
代碼如下 復制代碼$name = 'hello';
echo "the $name";
會輸出 the hello
而如果是單引號
代碼如下 復制代碼$name = 'hello';
echo 'the $name';
會輸出 the $name
主要區別就是這個。
在字符串中引用復雜的變量組合時,可能會產生一些問題,下面的代碼會正常工作:
而下面的代碼卻不能得到我們希望的結果:
echo "value = $a[$i][$j]"; //我們希望打印二維數組$a的某個元素。
為避免這些字串使用中的潛在問題,我們通常把復雜的變量從字串中分離開來,就像這樣:
代碼如下 復制代碼 echo 'value = ' . $a[$i][$j];還有一種辦法是將復雜變量用花括號括起來,語法分析器就能正確辨認了:
代碼如下 復制代碼 echo "value = {$a[$i][$j]}" //打印二維數組$a的某個元素這樣,又出現新問題了。當我們想在字串中引用花括號字符本身時,就要記得使用轉義符了:
代碼如下 復制代碼 $var = 3;
看個實例
$var1 = "chris mao"; //assign the value "chirs mao" to $var1
$var2 = &$var1; //reference $var1 via $var2
echo '<b>the value of $var2 is: </b>', $var2, "<br>"; //$var2 and $var1 have the same value "chris mao"
$var2 = 'my name is $var2'; //modify $var2, the sametime $var1 was modified
echo '<b>the value of $var1 is: </b>', $var1, "<br>"; //the value of $var1 is "my name is $var2"
$var2 = "my new name is $var1"; //modify $var2, the sametime $var1 was modified
echo '<b>the value of $var2 is: </b>', $var2, "<br>"; //the value of $var1 is "my new name is my name is $var2"
echo '<b>the value of $var1 is: </b>', $var1, "<br>"; //the value of $var1 is "my new name is my name is $var2"