在PHP中,可以使用單引號或是雙引號來定義一個字串。在平常的使用中並沒有細分這兩種符號定義的字串有什麼區別。今天寫了幾行代碼作為講“傳址賦值”的樣本,在這段代碼中同時使用了單引號和雙引號定義字串(請注意下面程式碼片段中的第四行和第六行),執行過後卻發生了奇妙的事情。
$var1="ChrisMao";//Assignthevalue"ChirsMao"to$var1
$var2=&$var1;//Reference$var1via$var2
echo'Thevalueof$var2is:',$var2,"
";//$var2and$var1havethesamevalue"ChrisMao"
$var2='mynameis$var2';//Modify$var2,thesametime$var1wasmodified
echo'Thevalueof$var1is:',$var1,"
";//Thevalueof$var1is"mynameis$var2"
$var2="myNewnameis$var1";//Modify$var2,thesametime$var1wasmodified
echo'Thevalueof$var2is:',$var2,"
";//Thevalueof$var1is"myNewnameismynameis$var2"
echo'Thevalueof$var1is:',$var1,"
";//Thevalueof$var1is"myNewnameismynameis$var2"
是執行結果的
不知大家看到這個結果有沒有發現什麼。在代碼的第四行和第六行的指派陳述式的右側字串中都出現了與程式碼片段中相同的變數名,只不過是一句用單引號,另一句用的是雙引號。在執行之前,預計的輸出應該是把變數名做為字串原樣輸出,而不是輸出變數值。但執行之後卻發現輸出與之前的預計是不同的。使用單引號的賦值是將字串中的變數名原樣輸出,而使用雙引號的指派陳述式則將變數名替換為此變數實際的值輸出。
重新翻書到講解字串變數的章節,細細地閱讀,赫然發現書中對這一現象早有描述:雙引號字串最重要的一點是其中的變數名會被變數值替代。都是看書不細惹的禍!
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
以上就介紹了PHP中單引號與雙引號的區別,包括了方面的內容,希望對PHP教程有興趣的朋友有所協助。