回答:
PHP文字列は、 2つの方法だけでなく、 4 つの方法で指定できます。
\'
を表示する場合はバックスラッシュでエスケープでき、円記号を表示する場合は別のバックスラッシュでエスケープできます\\
(そのため、単一引用符で囲まれた文字列でも解析されます)。$type
あり、それをしたいとしますecho "The $types are"
。それは変数を探します$types
。この使用を回避echo "The {$type}s are"
するには、左中括弧をドル記号の前または後に置くことができます。見てみましょう解析する文字列を配列変数と、そのような使用方法を参照してください。<<<
ます。この演算子の後、識別子が提供され、次に改行が提供されます。文字列自体が続き、次に同じ識別子が再び引用を閉じます。この構文では引用符をエスケープする必要はありません。<<<
、ヒアドキュメントと同じシーケンスで識別されますが、その後に続く識別子は単一引用符で囲まれます<<<'EOT'
。nowdocでは解析は行われません。注: 一重引用符内の単一引用符と二重引用符内の二重引用符はエスケープする必要があります。
$string = 'He said "What\'s up?"';
$string = "He said \"What's up?\"";
速度:
一重引用符の方が二重引用符よりも高速であることを重視しません。特定の状況では、おそらくより高速です。PHP 4.3以降(Useless Optimizations
セクションの一番下)、一重引用符と二重引用符が基本的に等しく高速である1つの方法を説明する記事を次に示しC
ます。また、このベンチマークページには、一重引用符と二重引用符の比較があります。ほとんどの比較は同じです。二重引用符が単一引用符よりも遅い比較が1つあります。
\n
していPHP
ます。それが必要な場合は、コード内の他のすべてが単一引用符で囲まれています。
"
二重引用符の処理速度の低下は、過去のものです。更新により、最近の極端な場合を除いて、二重引用符の処理が速くなります。
物事は二重引用符で評価されますが、単一引用符では評価されません。
$s = "dollars";
echo 'This costs a lot of $s.'; // This costs a lot of $s.
echo "This costs a lot of $s."; // This costs a lot of dollars.
$mailbody = 'I want a line break:\nDone.';
は、\n
生き続けることです。一方$mailbody = "I want a line break:\nDone.";
、改行を解析します。
$testWithAsciiAndUtf8Characters = "\x48\x41\x4c\114\117 \u{0147}\u{012B}\u{0144}\u{014D}!";
$simpleTest = '\x48\x41\x4c\114\117 \u{0147}\u{012B}\u{0144}\u{014D}!';
文字シーケンスは$testWithAsciiAndUtf8Characters
、実際の文字を含む文字列に変換されました。
'
一重引用符文字列を指定する最も簡単な方法は、文字列を一重引用符で囲むことです。一重引用符は一般的に高速で、内部で引用されたものはすべてプレーン文字列として扱われます。
例:
echo 'Start with a simple string';
echo 'String\'s apostrophe';
echo 'String with a php variable'.$name;
"
二重引用符PHPで二重引用符を使用すると、ピリオドを使用してコードを区切る{}
必要がなくなります(注:連結(.
)演算子を使用しない場合は、中括弧を使用して変数を含めます)。
例:
echo "Start with a simple string";
echo "String's apostrophe";
echo "String with a php variable {$name}";
はい。単一引用符を使用する方がわずかに高速です。
PHPは、単一引用符内の内容を解釈するために追加の処理を使用しません。二重引用符を使用する場合、PHPは文字列内に変数があるかどうかをチェックするために解析する必要があります。
\'
するために単一のアポストロフィをエスケープする(または\\'
バックスラッシュを表示する)ために使用できるものです。などの従来のエスケープシーケンスは\n
、改行文字に解析されないことに注意してください。文字列に関するPHPドキュメント
一重引用符で囲まれた文字列には、解釈される変数がありません。二重引用符で囲まれた文字列にはあります。
また、二重引用符で囲まれた文字列にはバックスラッシュなしのアポストロフィを含めることができますが、単一引用符で囲まれた文字列にはエスケープしない引用符を含めることができます。
単一引用符で囲まれた文字列は、解析する必要がないため、実行時に高速になります。
PHPでは、'my name'
および"my name"
は両方とも文字列です。詳細については、PHPのマニュアルを参照してください。
あなたが知っておくべきことは
$a = 'name';
$b = "my $a"; == 'my name'
$c = 'my $a'; != 'my name'
PHPで、人々は一定の文字列を定義するために単一引用符を使用して、のような'a'
、'my name'
、'abc xyz'
文字列を定義するために二重引用符を使用している間、のような識別子を含みます"a $b $c $d"
。
そして他のものは、
echo 'my name';
より速い
echo "my name";
だが
echo 'my ' . $a;
より遅い
echo "my $a";
これは、他の文字列の使用にも当てはまります。
<?php
$fname = "David";
// Single quotes
echo 'My name is $fname.'; // My name is $fname.
// Double quotes
echo "My name is $fname."; // My name is David.
// Curly braces to isolate the name of the variable
echo "My name is {$fname}."; // My name is David.
// Example of heredoc
echo $foo = <<<abc
My name is {$fname}
abc;
// Example of nowdoc
echo <<< 'abc'
My name is "$name".
Now, I am printing some
abc;
?>
PHPでは、一重引用符のテキストは文字列値と見なされ、二重引用符のテキストは変数の値を置き換えて処理することで変数を解析します。
$test = "variable";
echo "Hello Mr $test"; // the output would be: Hello Mr variable
echo 'Hello Mr $test'; // the output would be: Hello Mr $test
ここでは、二重引用符が値を解析し、単一引用符は文字列値と見なされます($test
変数を解析しません)。
${variablename}
。