文字列の中で変数展開する

文字列をダブルクオーテーションで囲んで作成した場合やヒアドキュメントを使って作成した場合、文字列の中に変数を記述すると変数に代入されている値を文字列の中に展開することができます。ここでは PHP で文字列の中で変数を展開する方法について解説します。

(2021 年 06 月 30 日公開 / 2022 年 10 月 31 日更新)

文字列の中で変数展開する

文字列の中に変数を記述して展開を行う場合、変数名を波括弧の {} で囲んで記述します。

{$変数名}

変数展開が行われるのは文字列がダブルクオーテーション( " )で囲まれた場合やヒアドキュメントを使った場合です。

次の例を見てください。

$name = "高橋";
echo "私の名前は{$name}です";

変数 $name には文字列の "高橋" が代入されています。そして echo の引数に指定した文字列の中で {$name} と記述しています。この場合、プログラムの実行時に変数に代入されていた文字列と置き換わって「私の名前は高橋です」と表示されます。

なお変数のあとに空白がある場合には波括弧を記述せずに変数だけを記述しても変数展開できますが、変数のあとに別の文字列が続いている場合にはどこまでが変数名か区別できないため Warning が表示されます。予期せぬエラーを防ぐためにも変数展開する場合は波括弧を使用することをおすすめします。

〇 echo "私の名前は$name です";
× echo "私の名前は$nameです";

なおシングルクオーテーション( ' )で囲んだ文字列の中で変数を記述しても変数展開は行われません。次の例を見てください。

$name = "高橋";
echo '私の名前は{$name}です';

上記の場合は「私の名前は{$name}です」と変数展開されずにそのまま表示されます。

サンプルコード

では簡単なプログラムで試して見ます。

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>PHPテスト</title>
</head>
<body>

<p>
<?php
$name = "高橋";
echo "私の名前は{$name}です<br>";
echo '私の名前は{$name}です';
?>
</p>

</body>
</html>

sample.php というファイル名で Web サーバのドキュメントルートに保存しました。そのあとでブラウザからアクセスします。

文字列の中で変数展開する

ダブルクオーテーションで囲んだ文字列の中では変数展開が行われていますが、シングルクオーテーションで囲んだ文字列の中では変数展開が行われないので記載した文字列がそのまま出力されています。

-- --

PHP で文字列の中で変数を展開する方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。