PHPプログラミングで重要な「関数」について、独学エンジニアというサイトで学んだ内容をもとに自分用の備忘録としてまとめました。
概要
関数を正しく理解し、適切に使えるようになると、以下のメリットがあります:
- コードの再利用性向上:何度も同じ処理を書く必要がなくなる。
- 可読性の向上:処理の意味を明確にし、他の開発者が理解しやすいコードを書くことができる。
- メンテナンス性の向上:修正や機能追加が容易になる。
目次
関数の基本構文
関数 とは、 一連の処理をまとめたもの です。
基本的な構文は以下のようになります。
function sayHello($name) {
return "Hello, " . $name . "!";
}
echo sayHello("Taro"); // 出力: Hello, Taro!
関数のポイント
-
function
キーワードの後に 関数名 を記述。 -
引数 を
()
の中に指定(省略可能)。 -
処理内容 を
{}
の中に記述。 -
return
を使って 値を返す(省略可能)。
引数の種類
関数の 引数の渡し方 にはいくつかの種類があります。
(1) 値渡し(デフォルト)
通常の引数の渡し方で、 関数の中で変更しても元の変数には影響を与えません。
function changeValue($num) {
$num = 100;
}
$original = 50;
changeValue($original);
echo $original; // 出力: 50(変更されない)
(2) 参照渡し(リファレンス渡し)
&
を使うことで、 変数の実体を関数に渡すことができます。
function changeValue(&$num) {
$num = 100;
}
$original = 50;
changeValue($original);
echo $original; // 出力: 100(変更される)
注意点:
- 参照渡しを使うと 意図せず変数が変更されるリスク があります。
- 必要な場合以外は使用を避ける のがベスト。
(3) デフォルト引数
引数にデフォルト値を設定 することで、 引数が省略された場合の動作を指定できます。
function greet($name = "Guest") {
return "Hello, " . $name . "!";
}
echo greet(); // 出力: Hello, Guest!
echo greet("Taro"); // 出力: Hello, Taro!
(4) 可変長引数
引数の数を可変にしたい場合 は ...
(スプレッド構文)を使用します。
function sum(...$numbers) {
return array_sum($numbers);
}
echo sum(1, 2, 3, 4); // 出力: 10
メリット:
- 可変の引数を受け取ることができる ため、柔軟な関数を作れる。
(5) 名前付き引数
PHP 8.0 から導入された機能で、 引数の順番を無視して値を渡せる ようになります。
function register($name = "Guest", $age = null) {
return "Name: $name, Age: " . ($age ?? "N/A");
}
echo register(age: 25, name: "Taro");
// 出力: Name: Taro, Age: 25
メリット:
- 引数の順番を気にしなくて済む。
- 一部の引数だけ渡すことが可能。
返り値
関数から 処理結果を返す には return
を使います。
function double($num) {
return $num * 2;
}
echo double(5); // 出力: 10
返り値がない場合
return
を省略すると、 デフォルトで NULL
が返ります。
function noReturn() {
echo "This function has no return value.";
}
var_dump(noReturn()); // 出力: NULL
複数の値を返したい場合
PHP は 1つの値しか返せない ので、 配列を使って複数の値を返します。
function getUserData() {
return ["Taro", 25, "Engineer"];
}
list($name, $age, $job) = getUserData();
echo "$name, $age, $job"; // 出力: Taro, 25, Engineer
可変関数
関数名を変数にして動的に呼び出すことができる機能 です。
function add($a, $b) {
return $a + $b;
}
$operation = "add";
echo $operation(5, 3); // 出力: 8
活用例:
- ユーザーが選択した処理を実行する。
- Excelのデータを元に関数を呼び出す など。
まとめ
今回学んだこと
-
関数とは
- 一連の処理をまとめたもの。
-
引数の種類
- 値渡し(デフォルト):元の変数には影響なし。
-
参照渡し(
&
):元の変数が変更される。 - デフォルト引数:引数の省略時に値を指定できる。
-
可変長引数(
...
):任意の数の引数を受け取れる。 - 名前付き引数(PHP 8.0~):順番を気にせず引数を渡せる。
-
返り値
-
return
で関数の結果を返す。 - 複数の値を返すには配列を使う。
-
-
可変関数
- 変数を関数名として利用できる。
次のステップ
- 関数を使ってコードを書いてみる。
- 引数の種類や返り値を活用して、より柔軟な関数を設計する。
- 可変関数を使って動的な処理を試してみる。
関数をしっかり使いこなせると コードの品質が向上し、メンテナンスしやすくなります。
今回は独学エンジニアの学習を通じて得た関数の基礎知識をまとめました。
関数はPHPのコーディングで非常に重要な要素なので、学習中の皆さんの役に立てば幸いです。