2011-07-18 8 views
0

私はちょうどPHPを学び始めていて、私はPHP for the Webを使っています:ビジュアルクイックスタートガイド第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フォームからいくつかのデータを表示しています。

これを行う正しい方法は何ですか?この文脈では、'"を理解することに多くの問題があります。

2番目の例は、本の中の1つで、最初の例は、「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では、二重引用符で囲まれた文字列内の変数は値で置き換えられます。これはシングルクォートの文字列では起こりません。 PHPのドキュメントをチェックし、PHPの文字列の詳細については

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

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

あなたはまた、文字列内の変数の値を使用するように連結演算子.を使用することができます。たとえば

http://php.net/manual/en/language.types.string.php

-2

「vs」はどこにありますか?これは単に「対」を意味します。

2つの例の違いは、一重引用符と文字列連結(文字列を互いに追加)を使用し、二重引用符と内挿を使用することです(変数を単一文字列に直接挿入する) 。

+0

OPの質問では、それは '' vs ''' '' vs '" 'と言っていました。彼は一重引用符と二重引用符の間の違いを尋ねています。 –

関連する問題