【PHP】Lesson3-2:関数の定義と呼び出しを理解しよう

一つ前のレッスンでは 組み込み関数 について学習しました。
今回は 関数の定義と呼出し について見ていきましょう。
Lesson1:基礎文法編
Lesson2:制御構造編
Lesson3:関数編
・Lesson3-1:組み込み関数を理解しよう
・Lesson3-2:関数の基本を理解しよう ◁今回はココ
・Lesson3-3:関数の戻り値を理解しよう
・Lesson3-4:デフォルト引数とキーワード引数を理解しよう
・Lesson3-5:関数の型付けを理解しよう
・Lesson3-6:無名関数とアロー関数を理解しよう
・Lesson3-7:スコープを理解しよう
・確認問題3-1:石取りゲームを作ろう
・確認問題3-2:丁半賭博ゲームを作ろう
・確認問題3-3:モンスターとのバトルゲームを作ろう
Lesson4:データ構造編
Lesson5:クラス編
PHP関数の基礎|定義と使い方をわかりやすく解説
PHPで効率よくプログラムを書くためには、「関数」を使いこなすことが重要です。
関数を定義して繰り返し呼び出すことで、コードの整理や再利用が簡単になります。
本記事では、初心者にもわかりやすく関数の定義方法と呼び出し方の基本を解説し、実践的な使い方を紹介します。
関数の基礎をしっかり身につけて、より自由自在なPHPプログラミングにチャレンジしましょう!

関数とは何か?|定義方法と呼び出し方法を解説
関数とはプログラム内で繰り返し利用する処理をひとまとめにしたものです。
例えば「こんにちは、〇〇さん!」という挨拶文を表示する関数を定義しておけば、その後はこの関数を呼び出すだけで「こんにちは、〇〇さん!」と出力されます。
この仕組みを利用することで同じコードを何度も書く必要がなくなり、コードを短くできるだけでなく、プログラムの見通しが良くなることでエラーを減らすことにも繋がります。
PHPで関数を定義するには functionキーワード を用いて以下のように書きます。
function 関数名() { // 新規関数を定義 // この関数の処理内容をここに書く }
function
キーワード:関数を定義するために使用します。- 関数名:関数を識別するための名前。英数字とアンダースコアが使えます。
- 処理:関数が実行する具体的な内容。
以下は名前を表示する簡単な関数です。
function sayHello() { // sayHelloという名前の関数を定義 echo "こんにちは、ゲストさん!" . PHP_EOL; // sayHello関数の処理内容 }
定義した関数は、関数名を書くだけで呼び出すことができます。
例えば、上記のsayHello
関数は、単純に以下のように書くだけで呼び出すことができます。
sayHello(); // sayHelloの呼び出し
このコードを実行すると以下のように出力されます。
こんにちは、ゲストさん!
引数を持つ関数とは?|使い方とサンプルコード
関数を定義する際、引数 を設定することでそれに応じた処理を実行することができます。
function 関数名(仮引数) { // 引数を持つ新規関数を定義 // この関数の処理内容をここに書く } 関数名(実引数); // 関数に引数を渡して呼出し
例として、先ほどのsayHello
関数に引数を設定し、「ゲスト」ではなくユーザーの名前を表示する挨拶文を表示する関数に変更しましょう。
<?php function sayHello($name) { // 仮引数$nameを持つ、sayHelloという名前の関数を定義 echo "こんにちは、{$name}さん!" . PHP_EOL; // sayHello関数の処理内容 } sayHello("太郎"); // 実引数として"太郎"を渡してsayHelloの呼び出し
このコードを実行すると以下のように出力されます。
こんにちは、太郎さん!
また、引数は複数定義することもできます。
以下の関数は2つの数値を掛け算し、結果を表示します。
function multiplyAndPrint($num1, $num2) { // ふたつの仮引数を持つ関数multiplyAndPrintを定義 $result = $num1 * $num2; // 数値を掛け算 echo "計算結果は " . $result . " です。" . PHP_EOL; } // 関数を呼び出す multiplyAndPrint(3, 4); // 実行結果:計算結果は 12 です。 multiplyAndPrint(7, 8); // 実行結果:計算結果は 56 です。
一つずつコードを書くよりも、このように関数としてまとめることで完結かつ分かりやすいコードになることが分かると思います。
まとめ|PHP関数の定義・呼び出しを使いこなそう
この記事では、PHPの関数の定義方法や呼び出し方、さらに引数を使った関数の活用について解説しました。
関数を使いこなせるようになると、プログラムの再利用性や可読性が高まり、より効率的にコーディングできるようになります。
これからも実践を重ねて、さらに高度な関数の使い方や応用にもチャレンジし、着実にPHPスキルを伸ばしていきましょう!
演習問題|PHPで簡単な関数を定義して挨拶メッセージを作ろう

PHPで簡単な関数を作り、その関数を呼び出す方法を勉強しましょう。
今回は名前と年齢を入力してもらい、そのデータを使って挨拶のメッセージを作成して表示するプログラムを作ります。
関数の定義方法や、関数の呼び出し時に引数を渡す方法を理解することが目標です。
この演習の要件
以下の要件に従ってコードを完成させてください。
greetUser
という名前の関数を作成すること。
この関数は名前と年齢を受け取り、以下の3行のメッセージを出力する。- 「こんにちは、○○さん。」
- 「あなたは △△ 歳ですね。」
- 「素晴らしい一日をお過ごしください!」
- 標準入力を使用して、以下のデータを取得すること。
- 名前(文字列)
- 年齢(整数)
- 入力された名前と年齢を関数
greetUser
に渡し、関数の中で挨拶メッセージを表示すること。
ただし、以下のような実行結果となること。
名前を入力してください: 太郎 年齢を入力してください: 25 こんにちは、太郎さん。 あなたは 25 歳ですね。 素晴らしい一日をお過ごしください!
解き方のヒント
1からコードを組み立てることが難しい場合は、以下のヒントを開いて参考にしましょう。
- ヒント1【コードの構成を見る】
-
正解のコードは上から順に以下のような構成となっています。
(※下記の□はコード内のインデントを表しています)1:PHPの開始タグを記述
2:関数greetUserを定義し、名前と年齢を引数として受け取る
□ 「こんにちは、名前さん。」という挨拶を出力
□ 「あなたは年齢歳ですね。」というメッセージを出力
□ 「素晴らしい一日をお過ごしください!」というメッセージを出力
3:「名前を入力してください:」というプロンプトを出力
4:標準入力から文字列を取得し、空白を削除して変数$nameに代入
5:「年齢を入力してください:」というプロンプトを出力
6:標準入力から文字列を取得し、整数型にキャストして変数$ageに代入
7:greetUser関数を呼び出し、引数に$nameと$ageを渡す
- ヒント2【穴埋め問題にする】
-
以下のコードをコピーし、コメントに従ってコードを完成させて下さい。
<?php // 関数を定義します。 /* 【穴埋め問題1】 ここにgreetUser関数を定義し、名前と年齢を引数として受け取り、挨拶メッセージを出力するコードを書いてください。 */ // ユーザーから名前を入力してもらいます。 echo "名前を入力してください: "; /* 【穴埋め問題2】 ここに標準入力から文字列を取得し、空白を削除して変数$nameに代入するコードを書いてください。 */ // ユーザーから年齢を入力してもらいます。 echo "年齢を入力してください: "; /* 【穴埋め問題3】 ここに標準入力から文字列を取得し、整数型にキャストして変数$ageに代入するコードを書いてください。 */ // 定義した関数を呼び出して、挨拶のメッセージを表示します。 /* 【穴埋め問題4】 ここにgreetUser関数を呼び出し、引数に$nameと$ageを渡すコードを書いてください。 */
このヒントを見てもまだ回答を導き出すのが難しいと感じる場合は、先に正解のコードと解説を見て内容を理解するようにしましょう。
演習問題の答え合わせ
この問題の正解コードとその解説は以下の通りです。
クリックして開いて確認してください。
- 正解コード
-
<?php // 関数を定義します。 function greetUser($name, $age) { // 名前と年齢を使用して挨拶を作成 echo "こんにちは、" . $name . "さん。" . PHP_EOL; echo "あなたは " . $age . " 歳ですね。" . PHP_EOL; echo "素晴らしい一日をお過ごしください!" . PHP_EOL; } // ユーザーから名前を入力してもらいます。 echo "名前を入力してください: "; $name = trim(fgets(STDIN)); // 標準入力から名前を取得 // ユーザーから年齢を入力してもらいます。 echo "年齢を入力してください: "; $age = (int)trim(fgets(STDIN)); // 標準入力から年齢を取得し、整数にキャスト // 定義した関数を呼び出して、挨拶のメッセージを表示します。 greetUser($name, $age); // 名前と年齢を渡して関数を実行
- 正解コードの解説
-
コードをブロックごとに分割して解説します。
PHPタグと標準入力の準備
<?php echo "名前を入力してください: "; $name = trim(fgets(STDIN));
<?php
: PHPコードを開始するタグです。このタグがないとPHPスクリプトは動作しません。echo
: 文字列を出力する関数です。ここでは「名前を入力してください」というメッセージを表示しています。fgets(STDIN)
: 標準入力からデータを取得するPHPのビルトイン関数です。ユーザーが入力した値を読み取ります。trim
: 入力値から余分な空白や改行を取り除くビルトイン関数です。
関数の定義
function greetUser($name, $age) { echo "こんにちは、" . $name . "さん。" . PHP_EOL; echo "あなたは " . $age . " 歳ですね。" . PHP_EOL; echo "素晴らしい一日をお過ごしください!" . PHP_EOL; }
function
: 新しい関数を定義するキーワードです。- 関数名:
greetUser
はこの関数の名前です。自分で分かりやすい名前を付けることができます。 - 仮引数: 関数に渡す値を受け取るために使います。ここでは
$name
と$age
が仮引数です。 echo
: 名前や年齢を含む挨拶メッセージを出力しています。PHP_EOL
: 改行を表す定数です。異なるOS間で動作を統一するために使います。
標準入力からデータを取得し、関数を呼び出す
echo "年齢を入力してください: "; $age = (int)trim(fgets(STDIN)); greetUser($name, $age);
(int)
: 取得した値を整数に変換するキャスト操作です。これにより数値として扱えるようになります。- 関数の呼び出し:
greetUser($name, $age)
で定義した関数を実行します。このとき実引数として$name
と$age
を渡します。