PHP中單引號與雙引號的區別

來源:互聯網
上載者:User

    在PHP中,可以使用單引號或是雙引號來定義一個字串。在平常的使用中並沒有細分這兩種符號定義的字串有什麼區別。今天寫了幾行代碼作為講“傳址賦值”的樣本,在這段代碼中同時使用了單引號和雙引號定義字串(請注意下面程式碼片段中的第四行和第六行),執行過後卻發生了奇妙的事情。

$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"

是執行結果的

 

    不知大家看到這個結果有沒有發現什麼。在代碼的第四行和第六行的指派陳述式的右側字串中都出現了與程式碼片段中相同的變數名,只不過是一句用單引號,另一句用的是雙引號。在執行之前,預計的輸出應該是把變數名做為字串原樣輸出,而不是輸出變數值。但執行之後卻發現輸出與之前的預計是不同的。使用單引號的賦值是將字串中的變數名原樣輸出,而使用雙引號的指派陳述式則將變數名替換為此變數實際的值輸出。

    重新翻書到講解字串變數的章節,細細地閱讀,赫然發現書中對這一現象早有描述:雙引號字串最重要的一點是其中的變數名會被變數值替代。都是看書不細惹的禍!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.