2012-09-29 26 views
0

通常情況下,當PHP變量單引號括起來,他們被視爲字符串,即PHP - 爲什麼裏面雙打單引號的變量仍然解析

echo '$variable'; 

實際上呼應字$變量到屏幕。

那麼,爲什麼那麼這個字符串被解析:

echo "'$variable'"; 

該代碼實際上並呼應的變量的值。這是爲什麼?它仍然在單引號內,爲什麼它仍然被解析?

+0

的單引號被解釋爲字符串的一部分,代碼的不是一個方面被解析。如果你想轉義並顯示變量名稱,使用''''\ $ variable'「',你可以在'$'中轉義。 –

回答

0

因爲單引號是在雙引號內。雙引號內的任何內容都會被評估。所以,你的echo語句在雙引號內傳遞一個字符串。

該字符串被評估然後輸出。它包含單引號和變量。

嘗試此代替:

<?php 
    $var = 10; 
    echo '"$var"'; 
?> 
0

因爲它也用雙引號。最外層的引號表示它是什麼類型的字符串。

1

該字符串用雙引號括起來 - 單引號是字符串的內容的一部分,而不是字符串的分隔符的一部分。因此,單引號沒有任何語義含義。

你的問題表明你可能對字符串有一個根本性的誤解。還行吧!字符串是令人驚訝的複雜實體,如果你學習像C這樣的低級語言,它只會變得更加複雜。我建議你花一些時間來閱讀一般字符串以及PHP中的字符串。一些快速的谷歌搜索會比這個任務的精選列表更好。

0

它只是一個雙引號字符串,它包含兩個單引號字符。一旦他們在雙引號中,他們對解析器沒有任何意義。