概要

挨拶文に名前を埋め込む、エラーメッセージに変数の中身を差し込む、といった 「固定の文字列と、状況に応じて変わる値を組み合わせる」 作業はプログラムを書く時間の多くを占める。PHP にはこのために 2 つの方法が用意されていて、両方を使い分けられるようになるとコードがぐっと読みやすくなる。

1 つ目は . (ドット) 演算子による連結 で、"こんにちは " . $name . " さん" のように文字列と変数をつなげる。2 つ目は ダブルクォート文字列内での変数展開 で、"こんにちは {$name} さん" のように直接書き込める。シングルクォート '...' とダブルクォート "..." の違いはここで、シングルクォートは変数を展開せずそのまま文字として扱う、ダブルクォートは $変数\n のようなエスケープシーケンスを解釈する、というルールだ。変数を埋め込みたいかどうか で選ぶのが正しい使い分けになる。

初学者がほぼ全員踏むワナが 日本語の直後で変数が壊れる という現象。"こんにちは$nameさん" と書くと、PHP は $nameさん までを 1 つの変数名と誤読しようとする。これを防ぐのが 波括弧で囲む "{$name}" の形 で、変数の範囲を明示して日本語と分離できる。なお <<<EOT で複数行を書く ヒアドキュメント という記法もあるが、本章では扱わない。

学習目標

ドリル

no 内容
01 . 連結で名前と挨拶をつなげる
02 {$var} で日本語の文中に変数を埋め込む
03 1 つの文字列に複数の変数を埋め込む

演習: ドリル 01 — `.` で連結する

問題

変数 $name"花子" を代入し、. (ドット) で文字列と連結して次のように出力してください。

期待される出力:

こんにちは、花子さん

ヒント

演習: ドリル 02 — `{$var}` で日本語の中に埋め込む

問題

変数 $name"太郎" を代入し、ダブルクォートの中で {$name} を使って次のように出力してください。

期待される出力:

ようこそ太郎さん

ヒント

演習: ドリル 03 — 複数の変数を埋め込む

問題

次の 3 つの変数に値を代入し、ダブルクォート内で {$var} を使って 1 つの文字列にまとめて出力してください。

変数名 入れる値
$name "花子"
$age 20
$city "東京"

期待される出力:

花子さんは20歳で東京に住んでいます

ヒント

この章を AI に聞く

  1. 「ch06 — 文字列の連結と展開」のつまずきやすいポイントを、初学者向けに3つ教えてください

    💬 ChatGPT 📘 Claude ✨ Gemini

  2. 「ch06 — 文字列の連結と展開」について、自分の手で試せる練習問題を3つ出してください (難易度を上げながら)

    💬 ChatGPT 📘 Claude ✨ Gemini

  3. 「ch06 — 文字列の連結と展開」を学んだ後、次に学ぶと良いトピックは何ですか?理由も教えてください

    💬 ChatGPT 📘 Claude ✨ Gemini

🎉 受講お疲れさまでした!

ch06 — 文字列の連結と展開」を読み終えました。
学んだことを誰かに教えると、もっと記憶に残ります。

X で共有 Hatena LINE