カテゴリ: PHP 更新日: 2025/11/02

PHPの関数型プログラミングの基礎をやさしく解説!初心者でもわかる書き方と考え方

PHP の関数型プログラミングの基礎
PHP の関数型プログラミングの基礎

先生と生徒の会話形式で理解しよう

生徒

「関数型プログラミングって聞いたことあるけど、PHPでもできるんですか?」

先生

「はい、PHPでも関数型プログラミングを取り入れることができますよ。最近のPHPは、関数を変数のように扱ったり、配列を一気に処理する機能が充実してきています。」

生徒

「でも関数型ってむずかしそうなイメージがあります……」

先生

「たしかに最初は聞きなれない用語が出てきますが、PHPでよく使うarray_maparray_filterも関数型プログラミングの一種なんです。今日はやさしく解説していきましょう!」

-

1. 関数型プログラミングとは?

1. 関数型プログラミングとは?
1. 関数型プログラミングとは?

関数型プログラミングとは、「関数(function)」を使って処理を組み立てる考え方のことです。プログラムの中で関数というのは「何かの作業をする命令のかたまり」です。

関数型では、値を変えたりせずに、入力に対して決まった出力を返す、シンプルで安全な処理が好まれます。これは「副作用を避ける」とも呼ばれ、値を勝手に変えないことでバグを減らす効果があります。

PHPでもこの関数型の考え方を取り入れることで、コードが見やすく、管理しやすくなります。

2. PHPの関数を変数として使う

2. PHPの関数を変数として使う
2. PHPの関数を変数として使う

PHPでは関数を「変数」のように扱うことができます。これを「無名関数(匿名関数)」や「クロージャ」と呼びます。たとえば、以下のように関数を作って、それを変数に代入できます。


$greet = function($name) {
    return "こんにちは、" . $name . "さん!";
};

echo $greet("田中"); // こんにちは、田中さん!

3. よく使う関数:array_map

3. よく使う関数:array_map
3. よく使う関数:array_map

array_mapは、配列のすべての要素に対して、同じ処理をまとめて行う関数です。これは「繰り返し処理」を関数で行う例で、関数型の基本です。


$numbers = [1, 2, 3, 4, 5];

$double = array_map(function($n) {
    return $n * 2;
}, $numbers);

print_r($double);

Array
(
    [0] => 2
    [1] => 4
    [2] => 6
    [3] => 8
    [4] => 10
)

このように、array_mapを使えば、1つ1つの値に同じ処理を一気に適用できます。

4. 条件で選ぶ:array_filter

4. 条件で選ぶ:array_filter
4. 条件で選ぶ:array_filter

array_filterは、配列の中から条件に合ったものだけを取り出します。たとえば、偶数だけを選ぶときはこうします。


$numbers = [1, 2, 3, 4, 5, 6];

$even = array_filter($numbers, function($n) {
    return $n % 2 === 0;
});

print_r($even);

Array
(
    [1] => 2
    [3] => 4
    [5] => 6
)

このように、array_filterで条件に合う要素だけを抜き出すことができます。

-

5. 複数の関数をつなげる:関数の合成

5. 複数の関数をつなげる:関数の合成
5. 複数の関数をつなげる:関数の合成

関数型プログラミングでは「関数をつなげる(合成する)」という考え方も大事です。たとえば「2倍して、それを足す」などの処理を個別の関数にわけて作り、それを順に実行します。

PHPでは明示的な「関数合成」の仕組みはありませんが、関数を複数使うことでそれに近いことができます。


function double($n) {
    return $n * 2;
}

function addTen($n) {
    return $n + 10;
}

$number = 5;
$result = addTen(double($number));

echo $result; // 20

このように、処理を小さな関数に分けて組み合わせることで、再利用しやすく、わかりやすいコードになります。

6. 変数の値を変えない考え方

6. 変数の値を変えない考え方
6. 変数の値を変えない考え方

関数型プログラミングでは、「一度決めた値を変えない(イミュータブル)」という考え方が重要です。

これは「安全でバグが出にくいコード」にするためです。

PHPでは、配列のようなデータをコピーして新しく作り直すことで、元のデータを壊さずに処理することができます。

7. 初心者がPHPで関数型を学ぶポイント

7. 初心者がPHPで関数型を学ぶポイント
7. 初心者がPHPで関数型を学ぶポイント
  • 配列に対してarray_maparray_filterを使ってみる
  • 無名関数(function)を変数に代入して使う練習をする
  • 小さな処理を関数に分けて、組み合わせる

PHPの関数型プログラミングを使えば、よりシンプルでわかりやすいプログラムが書けるようになります。

コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

カテゴリの一覧へ
新着記事
PHPでセッションを使ってフォーム入力を保持する方法を解説!初心者向けステップバイステップ
Pythonで文字列をリストに変換する方法!split()とjoin()の使い方
Pythonの変数とは?定義方法とデータ型を初心者向けに解説
PHPでメールフォームを作る方法を徹底解説!初心者向けにmail関数とPHPMailerの使い方も紹介
人気記事
No.1
PHP&Python記事人気No1
Pythonでテキストファイルを1行ずつ読み込む方法(readline() / readlines())
No.2
PHP&Python記事人気No2
Pythonで文字列が数値か判定する方法!isdigit()・isnumeric()の違い
No.3
PHP&Python記事人気No3
Pythonのリストを辞書に変換する方法(dict() / zip())
No.4
PHP&Python記事人気No4
初心者向けにPHP でファイルを開く・読み込む・書き込む方法(fopen, fwrite, fread)を解説する記事
-