
【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行目の変数展開で波括弧をしようしています。
このようにすることで、変数名がどこからどこまでなのかを判定できるようになり、正常に実行することができます。
演習問題
次の実行結果になるプログラムを作成してください。
なお、下記の条件を満たすものとします。
Deployment
は変数に代入- 1の変数を変数展開して出力
Variable Deployment
次の実行結果になるプログラムを作成してください。
なお、下記の条件を満たすものとします。
Apple
、Orange
、Melon
は異なる変数に代入- 出力時に1の変数を変数展開して出力
Apple Orange Melon
まとめ
変数展開は文字列中に変数の値を差し込む方法です。
文字列は頻繁に使うので、覚えていきましょう。