【PHP】レッスン1-06:文字列の連結と埋め込み

記事内に商品プロモーションを含む場合があります

この記事で学べる知識:文字列の連結と埋め込み

この記事の練習問題を解くために必要な知識:
PHPタグ入力と出力コメントの書き方変数と定数データ型とキャスト算術演算子文字列文字列の連結と埋め込み乱数生成

<<前のページ PHP記事一覧 次のページ>>

PHPの「文字列の連結と埋め込み」とは

この章ではPHPにおける「文字列の連結と埋め込み」の意味や使い方を学習します。用語の解説が不要な方はここをクリックして練習問題へ飛びましょう。




PHPでは文字列を操作する方法が豊富に用意されています。

その中でも複数の文字列を結合する「文字列の連結」と、変数や値を文字列内に直接埋め込む「文字列の埋め込み」は、非常に頻繁に使用される重要なテクニックです。

本記事ではこれらの使い方について解説します。

文字列の連結とは?

文字列の連結とは、複数の文字列を結合して1つの文字列にする操作です。

この方法は、例えばユーザーの名前やメッセージを動的に生成する際に利用されます。

PHPで文字列を連結する際には、ドット演算子 (.) を使用します。この演算子を使用することで複数の文字列を簡単に結合できます。

<?php
// 基本構文
$string1 = "こんにちは、";
$string2 = "世界!";
$result = $string1 . $string2; // "こんにちは、世界!"
echo $result;
  • ドット演算子の左右にある文字列や変数が結合されます。
  • 元の変数には影響がありません。

文字列連結の使用例

以下はユーザー名を使った動的なメッセージ生成の例です。

<?php
$username = "太郎";
$message = "こんにちは、" . $username . "さん!";
echo $message; // "こんにちは、太郎さん!"
  1. $username にユーザー名を代入します。
  2. ドット演算子を使い、定型文と変数を結合します。
  3. 最終的な文字列が echo で表示されます。

連結された結果をさらに別の文字列と結合することも可能です。

<?php
$greeting = "ようこそ、";
$location = "PHP学習サイト";
echo $greeting . $location . "へ!"; // "ようこそ、PHP学習サイトへ!"

文字列の埋め込みとは?

文字列の埋め込みは文字列の中に変数や値を直接挿入する方法です。

主に、ダブルクォーテーション (") を使用することで実現します。

<?php
$name = "花子";
echo "こんにちは、$name さん!"; // "こんにちは、花子さん!"
  • 変数名はそのまま文字列内に記述します。
  • 必要に応じて中括弧 {} で変数を囲むことで、より複雑な文字列にも対応可能です。

文字列埋め込みの使用例

例えば、計算結果や動的データを文字列内に表示する場合の例です。

<?php
$price = 1000;
$quantity = 3;
$total = $price * $quantity;
echo "合計金額は {$total} 円です。"; // "合計金額は 3000 円です。"
  • 中括弧 {} を使うことで計算結果などの複雑な値も埋め込むことができます。
  • この方法はコードの可読性を向上させるのに役立ちます。

まとめ

文字列の連結と埋め込みは、PHPプログラミングにおいて頻繁に使用される機能です。

  • 連結:ドット演算子を使い、複数の文字列を1つにまとめる。
  • 埋め込み:ダブルクォーテーション内で変数や値を展開する。

これらを効果的に活用することで、より動的で柔軟なプログラムを作成できるようになります。

ぜひ、練習問題で実際に手を動かして習得してください!

文字列の連結と埋め込みの練習問題

ユーザーに名前を尋ね、その名前を使ったカスタマイズされた挨拶文を作成するプログラムを作りましょう。

文字列を連結する方法と文字列に変数を埋め込む方法の両方を学べます。

ユーザーが入力した名前を使って、2種類の異なる形式の挨拶文を出力してください。

この問題の要件

以下の要件に従ってコードを完成させてください。

  1. ユーザーに名前を尋ねるメッセージを表示すること。
  2. fgets(STDIN) 関数を使ってユーザーの入力を受け取ること。
  3. trim 関数を使用して、入力された名前の不要な空白や改行を取り除くこと。
  4. 入力された名前を使い、以下の挨拶メッセージを生成すること。
    • 文字列の連結を使った挨拶:「こんにちは、[名前]さん!ようこそPHP学習サイトへ。」
    • 文字列の埋め込みを使った挨拶:「こんにちは、[名前]さん!PHPを楽しみましょう!」
  5. 上記2種類の挨拶メッセージを順番に画面に表示すること。

ただし、以下のような実行結果となるコードを書くこと。

*****↓↓正解コードの実行結果の例↓↓*****

こんにちは!あなたのお名前は何ですか?
一郎
ようこそ、一郎さん!このPHP学習サイトへ!
楽しんでくださいね、一郎 さん!

この問題を解くヒント

1からコードを組み立てることが難しい場合は、以下のヒントを開いて参考にしましょう。

ヒント1【コードの構成を見る】

正解のコードは上から順に以下のような構成となっています。
(※下記の□はコード内のインデントを表しています)

1:ユーザーに名前を尋ねるメッセージを出力
2:標準入力からユーザーの名前を取得し、不要な空白や改行を削除して変数$nameに格納
3:文字列の連結を使用して挨拶メッセージを作成し、変数$greetingに格納
4:挨拶メッセージを出力
5:文字列の埋め込みを使用して別のメッセージを作成し、変数$additionalMessageに格納
6:埋め込みメッセージを出力

ヒント2【穴埋め問題にする】

以下のコードをコピーし、コメントに従ってコードを完成させて下さい。

<?php
// ユーザーに名前を尋ねるメッセージを表示
echo "こんにちは!あなたのお名前は何ですか?" . PHP_EOL;

// ユーザーの入力を受け取る
/*【穴埋め問題1】
ここで標準入力からデータを受け取り、改行を削除して変数 $name に代入するコードを書いてください。
*/

// 挨拶メッセージを準備
/*【穴埋め問題2】
ここで $name を使用して文字列を連結し、変数 $greeting に挨拶メッセージを代入するコードを書いてください。
*/

// メッセージを出力
echo $greeting . PHP_EOL;

// 埋め込み文字列で別のメッセージを作成
/*【穴埋め問題3】
ここで $name を埋め込んだ文字列テンプレートを使用して、変数 $additionalMessage に代入するコードを書いてください。
*/

// 埋め込みメッセージを出力
echo $additionalMessage;

以上がこの問題の穴埋めコードです。

このヒントを見てもまだ回答を導き出すのが難しいと感じる場合は、先に正解のコードと解説を見て内容を理解するようにしましょう。



練習問題の解答と解説

この問題の一つの正解例とそのコードの解説を以下に示します。

正解コードの例

例えば以下のようなプログラムが考えられます。

<?php
// ユーザーに名前を尋ねるメッセージを表示
echo "こんにちは!あなたのお名前は何ですか?" . PHP_EOL;

// ユーザーの入力を受け取る
$name = trim(fgets(STDIN));

// 挨拶メッセージを準備
$greeting = "ようこそ、" . $name . "さん!このPHP学習サイトへ!";

// メッセージを出力
echo $greeting . PHP_EOL;

// 埋め込み文字列で別のメッセージを作成
$additionalMessage = "楽しんでくださいね、$name さん!";

// 埋め込みメッセージを出力
echo $additionalMessage;

正解コードの解説

今回作成したコードではユーザーから名前を入力してもらい、その名前を使った挨拶メッセージを生成します。

このプログラムをブロックごとに分けて詳しく説明します。

ユーザー入力を受け取る部分

echo "こんにちは!あなたのお名前は何ですか?" . PHP_EOL;
$name = trim(fgets(STDIN));
  • echo: 指定した文字列を出力します。このコードではユーザーに名前を入力してもらうようメッセージを表示しています。
  • fgets(STDIN): 標準入力(コンソール)からデータを読み取るための関数です。ここではユーザーが入力した名前を取得しています。
  • trim: 文字列の前後にある余分な空白や改行を削除します。これにより入力された名前がきれいに処理されます。

文字列の連結を使った挨拶メッセージの生成

$message1 = "こんにちは、" . $name . "さん!ようこそPHP学習サイトへ。";
echo $message1 . PHP_EOL;
  • ドット演算子(.: 複数の文字列を連結するための演算子です。ここでは、”こんにちは、” とユーザーが入力した名前($name)、さらに “さん!ようこそPHP学習サイトへ。” を連結しています。
  • $message1: 作成された連結結果の文字列がこの変数に格納されます。
  • echo: 作成したメッセージを画面に出力します。

文字列の埋め込みを使った挨拶メッセージの生成

$message2 = "こんにちは、$name さん!PHPを楽しみましょう!";
echo $message2;
  • ダブルクォーテーション ("): ダブルクォーテーションを使うと文字列内に変数を直接埋め込むことができます。ここでは$name の値がそのまま展開されて挨拶メッセージに組み込まれます。
  • $message2: 埋め込みを使って生成されたメッセージがこの変数に格納されます。
  • echo: 埋め込みで作成したメッセージを出力します。

まとめ

このプログラムでは以下のポイントを学ぶことができます:

  1. 文字列の連結: ドット演算子を使って複数の文字列や変数を一つにまとめる方法。
  2. 文字列の埋め込み: ダブルクォーテーション内で変数を展開する便利な手法。
  3. ユーザー入力の処理: fgets を使った標準入力の取得と、trim を用いたデータの整形。

このプログラムはPHPの基礎的な文法を学ぶのに最適です。

これらのテクニックを使えば動的なメッセージ生成など、より実用的なプログラムを作成できるようになります。

ぜひ、自分のアイデアを追加して、PHPプログラミングをさらに楽しんでください!

<<前のページ PHP記事一覧 次のページ>>

この記事への質問・コメント

この記事を作成するにあたりAIを活用しています。

問題ないことは確認していますが、もし間違いや表現の違和感などありましたら、ご指摘頂けると大変助かります。






    PHPのテキスト&問題集トップへ戻る
    トップページへ戻る