2009-09-09 3 views
16

可能性の重複:?
PHP: different quotes?の違いは何ですか 'と "PHPでは

素朴な疑問:

の違いは何ですか' と" PHPでは?どちらを使うべきですか?

+7

デュープます。http:// stackoverflowの。 com/questions/1318028/php-different-quotes – strager

+0

新しい質問を投稿する前に、stackoverflowを検索してください(検索ボックスは右上にあります)。 – ChristopheD

+0

私は実際にやった。明らかに十分ではない。ありがとう – johnnietheblack

答えて

13

は基本的には、単一引用符で囲まれた文字列はほとんどない二重引用符で囲まれた文字列は、変数補間を持っているのに対し、特別な場合(例えばecho "Hello $username";を)ならびに「\ nの」としてエスケープシーケンスでプレーンテキストです(改行。)

ます文字列についての詳細はPHP's manualにあります。

0

は「文字と変数をエスケープ解釈。 'のいずれか行いません。

1

差があり、二重引用符の間の文字列(」)の変数のために解析され、シーケンス置換をエスケープしています。一重引用符( ')の文字列はそうではありません。

だから、あなたが行うことができ、二重引用符( ")を使用して:単一引用符で

を同じに生成されます

$count = 3; 
echo "The count is:\t$count"; 

はリテラル文字列を返します

をまた、エスケープする必要がある文字。

'John said, "Hello"' 

文字列内の引用符をエスケープする必要がないように、一重引用符を使用することもできます。

2

引用符で囲まれた文字列内の変数はすべて解析されず、そのまま変数名として表示されるため、引用符付きの文字列はPHP 。処理する

$test = 'hello'; 
echo "this is a $test"; // returns this is a hello 
echo 'this is a $test'; // returns this is a $test 

を私はあなたの文字列内の変数を使用する場合に限り使用が「引用言うだろう

0

一言で:あなたはすべてのあなたの特別な文字(のような\ n個)したいと思いますし、 varables($数字のような)は注目され、proce ss。

18

3 syntax used to declare stringsがPHP < = 5にあります。2:単一引用符で

変数とにはならないだろう 特殊文字のエスケープシーケンス

echo 'Variables do not $expand $either'; 

ウィル出力:二重引用符で

Variables do not $expand $either 


最も重要な機能は、例えば

を拡大しました のダブルクォート文字列は、 変数名が展開されるという事実です。例えば

$a = 10; 
echo "a is $a"; 

ウィル出力:

a is 10 


そして、ヒアドキュメントと:

ヒアドキュメントのテキストは、ちょうどのように振る舞います二重引用符で囲まれた文字列。 の二重引用符は使用しないでください。ヒアドキュメントで を引用が は、例えば、

をエスケープする必要はありません。この手段:

$a = 10; 
$b = 'hello'; 

$str = <<<END_STR 
a is $a 
and "b" is $b. 
END_STR; 

echo $str; 

はあなたを取得します:

a is 10 
and "b" is hello. 
関連する問題