ITHACK
~ みんなのIT部門 ~

【PHP】変数展開 – 文字列中に変数の値を差し込む

文字列の中に変数の値を展開することができます。

ここでは初心者向けに変数展開について解説します。

  • 変数展開

変数展開とは

変数展開は文字列の中に変数の値を展開することです。
文字列の中に変数を記述することで、プログラムの実行時に変数は値に置き換わります。

基本構文

変数展開の基本構文は次のようになります。

"$変数名"

変数展開はダブルクオートの文字列のみで使用できます。
シングルクオートの文字列では使用できないので注意しましょう。

サンプルコード

次のサンプルコードをご覧ください。

<?php

$country = 'Japan';

$message = "Hello $country\n";

echo $message;

?>
Hello Japan

5行目のダブルクオートの文字列の中に変数がありますが、これが変数展開の記述です。
文字列の内容には通常の文字を含むことができ、任意の場所に変数を記述することで、その部分が変数の値に置き換わります。

実行結果から$countryの値('Japan')が置き換わっていることが分かります。

なお、シングルクオートの文字列に変えた場合、変数がそのまま文字列とし扱われてしまうので注意しましょう。

波括弧を使う

変数展開では波括弧{}を使う方法があります。
この方法を使うことで変数を明確にすることができます。

基本構文

波括弧を使う方法の基本構文は次のようになります。

"{$変数名}"

波括弧を使う理由

波括弧を使って変数を明確にする理由は、変数名を誤って処理してしまう場合があるからです。

次のコードをご覧ください。

<?php

$country = 'Japan ';

$message = "Hello $countryTokyo\n";

echo $message;

?>
PHP Warning:  Undefined variable $countryTokyo in sample.php on line 5

Warning: Undefined variable $countryTokyo in sample.php on line 5
Hello

実行結果にエラーが出力されています。
これは5行目の変数展開で、変数の$countryと文字列としたいTokyoがスペースなく繋がってしまっていることが原因です。それにより、実行時に$countryTokyoという変数を展開しようとしますが、そのような変数がないためエラーとなっています。

サンプルコード

上記コードで波括弧{}を使用すると次のようになります。

<?php

$country = 'Japan ';

$message = "Hello {$country}Tokyo\n";

echo $message;

?>
Hello Japan Tokyo

5行目の変数展開で波括弧をしようしています。
このようにすることで、変数名がどこからどこまでなのかを判定できるようになり、正常に実行することができます。

演習問題

問題1

次の実行結果になるプログラムを作成してください。
なお、下記の条件を満たすものとします。

  1. Deploymentは変数に代入
  2. 1の変数を変数展開して出力
Variable Deployment

問題2

次の実行結果になるプログラムを作成してください。
なお、下記の条件を満たすものとします。

  1. AppleOrangeMelonは異なる変数に代入
  2. 出力時に1の変数を変数展開して出力
Apple Orange Melon

まとめ

変数展開は文字列中に変数の値を差し込む方法です。
文字列は頻繁に使うので、覚えていきましょう。