PHPで「’」と「”」の使用方法の違いって何だろう?

PHP「’」と「”」で囲む場合の違い

PHPのコマンドecho で文字列を囲う場合、「’」「”」のどちらで囲っても良いとされています。

間違いではないのですが、例外もあります。

変数を囲う場合

echo の文字列と変数を連結して使用する場合・・・

  • 変数内容を出力するためには「”」(ダブルクォーテーション)で囲みます
  • 「”」で囲むと、{$変数}、$変数 どちらでも使用可能で、変数内容が出力される
  • 「’」で囲んだ場合、{$変数}、$変数はそのまま文字として出力される
<?php
 $txt = '+テキスト②'
 echo "テキスト①{$txt}";
 // HTML出力結果:テキスト+①テキスト②
 echo "テキスト①$txt";
  // HTML出力結果:テキスト+①テキスト②
 echo 'テキスト①{$txt}';
 // HTML出力結果:テキスト①{$txt}
 echo 'テキスト①$txt';
 // HTML出力結果:テキスト①$txt
?>

違いわかりますかね?
(ホント、ややこしいけど…)

特殊文字を使用する場合

特殊文字はエスケープシーケンスという「¥」使って記述します。
echoの文字列内で特殊文字を使用する場合・・・

「”」(ダブルクォーテーション)で囲みます

<?php
 echo "犬はワンと吠え¥n猫はニャンと鳴く"
 /* HTML出力結果:
  犬はワンと吠え[改行]
  猫はニャンと鳴く
 echo '犬はワンと吠え¥n猫はニャンと鳴く'
 /* HTML出力結果:
  犬はワンと吠え¥n猫はニャンと鳴く 
?>

「”」内の特殊文字は、特殊文字の効果があります。
「’」内の特殊文字は、特殊文字は文字としてそのまま出力されます。

特殊文字の種類

特殊文字の種類は以下の通りです。

記号(表記) 読み方 意味
¥n( \n ) LF(ラインフィールド) 改行:1行下に移動する
¥r( \r ) CR(キャリッジリターン) 改行:左マージン位置に戻る
¥t( \t ) タブ

ほとんどの場合、¥n( \n )を使用します。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です