「文字列の扱いについての基本」
文字列の扱いについての基本は?
回答
以下参照
ソース
ダブルクォートとシングルクォートの違い
①シングルクォートを使った場合、以下の$a変数の値は、「ABC$s」になる。
$s='abc';
$a='ABC$s';//シングルクォート内にある$sは変数とみなされず、文字列とみなされる。
echo $a;
②ダブルクォートを使った場合、以下の$a変数の値は、「ABCabc」になる。
$s='abc';
$a="ABC$s";//ダブルクォート内にある$sは変数とみなされて変数展開される。
echo $a;
③シングルクォートを使った場合、エスケープ文字列が展開されず以下の$a変数の値は、「ABC\n」になる。
$a='ABC\n';//シングルクォート内にある$sは変数とみなされず、文字列とみなされる。
echo $a;
④ダブルクォートを使った場合、以下の$a変数の値は、「ABC」+改行コード(正確にはLF[ラインフィーダ chr(10)]) になる。
$a="ABC\n";//ダブルクォート内にある$sは変数とみなされて変数展開される。
文字列連結(. ドット)
以下は$aも$bも同じ値となる。
$s='abc';
$a="ABC$s";
$b="ABC".$s;
echo $a."<br>".$b;
ダブルクォート内で配列変数を展開する場合は?
以下は$aも$bも同じ値「ABCabcdef」となる。
$ar=Array();
$ar[0]='abc';
$ar[1]='def';
$a="ABC$ar[0]$ar[1]";
$b="ABC".$ar[0].$ar[1];
echo $a."<br>".$b;
ダブルクォート内で連想配列を展開する場合は?
ダブルクォート内で変数を指定するには{}で変数をくくってやればよい。以下は$aも$bも同じ値「ABCabcdef」となる。
$ar=Array();
$ar["a"]='abc';
$ar["b"]='def';
$a="ABC{$ar["a"]}{$ar["b"]}";
$b="ABC".$ar["a"].$ar["b"];
echo $a."<br>".$b;
ダブルクォート内でダブルクォート(")を含む文字列を表すには?
\を使ってエスケープします。
$ar="文字列内でダブルクォート\"を使う。";
echo $ar."ダブルクォートの\"出力\"ができます。";