2011-07-18 89 views
0

我剛剛開始學習PHP,我在網上使用PHP:Visual Quickstart Guide第4版,我有一個關於我在書中學到的腳本的問題,只是寫道。PHP中單引號和雙引號字符串有什麼區別?

這是腳本的代碼:

 print '<p>Thank you, ' .$title.$name. ' for your comments.</p> 
    <p>You stated that you found this example to be "'.$response.'" and added:<br />' 
    .$comments.'</p>'; 

    print "<p>Thank you, $title $name for your comments.</p><p>You stated that you found this example to be '$response' and added:<br/>$comments</p>"; 

這個腳本是剛剛從通過POST拉HTML表單中顯示的一些數據。

這樣做的正確方法是什麼?在這種情況下,我很難理解' vs "

第二個例子是本書的一個例子,第一個例子是我在試圖理解「vs」問題後發現該怎麼做的。關於這個問題,在哪裏找到一個好的位置' VS "

+1

*(參考)* http://www.php.net/manual/en/language.types.string.php – Gordon

回答

2

雙引號字符串被PHP解析器解析爲變量和轉義字符,如\n

$x = 10; 
echo "$x dollars"; // Outputs: 10 dollars 

單引號字符串沒有得到解析這樣:

$x = 10; 
echo '$x dollars'; // Outputs: $x dollars 

,並輸出10 dollars你需要做字符串連接:

$x = 10; 
echo $x.' dollars'; 

字符串中解析變量的使用更多的內存和比字符串連接需要更多的時間。所以單引號幾乎總是最好的方式。儘管差異很小。

+0

謝謝,這有助於爲我解決問題。 – AlexBeau

0

雙引號是用來解析字符串中的變量。如果你使用"Hi, $name",它會正確解析的變量,例如,Hi, AlexBeau。如果您想使用'Hi, $name',它會輸出Hi, $name

如果您在詢問有關使用.連接st戒指,這並不重要。按照我之前提到的規則使用它。

雖然沒有解析,但單引號應該會更快。

+0

非常感謝您的幫助。 – AlexBeau

2

在PHP中,雙引號字符串中的變量被替換爲它們的值。這在單引號字符串中不會發生。

例如:

$make = 'Nisaan'; 
$model = 'Altima'; 

echo 'I drive a $make $model.'; // I drive a $make $model. 
echo "I drive a $make $model."; // I drive a Nissan Altima. 

您還可以使用連接運算符.使用一個變量的值的字符串:

echo 'I drive a '.$make.' '.$model.'.'; // I drive a Nissan Altima. 

更多關於PHP字符串,檢查PHP文檔:http://php.net/manual/en/language.types.string.php

-2

你在哪裏看到「vs」?它只是意味着「與...相比」 - 與之相比。

這兩個示例的區別在於第一個使用單引號和字符串連接(將字符串彼此相加),第二個使用雙引號和插值(從環境中獲取變量直接插入到單個字符串中) 。

+0

在OP的問題中,它說''vs。''''vs'''。他問的是單引號和雙引號之間的區別。 –

相關問題