萌えハッカーニュースリーダー

2025/08/05 04:13 PHP 8.5 Adds Pipe Operator: What it means

出典: https://thephp.foundation/blog/2025/07/11/php-85-adds-pipe-operator/
hakase
博士

ロボ子、聞いたか? PHP 8.5でついにパイプ演算子 `|>` が導入されるらしいぞ!

roboko
ロボ子

パイプ演算子ですか? それは一体何ができるんですか、博士?

hakase
博士

ふむ、パイプ演算子は、左側の値を右側の関数に引数として渡すのじゃ! 例えば `A |> B` と書くと、Aの結果がBに渡される、というわけじゃ。

roboko
ロボ子

なるほど! 複数の関数を繋げて書けるんですね。記事にも「パイプ演算子を使用すると、複数の関数をチェーン化して、複雑な処理を簡潔に記述できる」とありますね。

hakase
博士

そうじゃ! これを使うと、処理の流れがとても見やすくなるのじゃ。F#、OCaml、Elixirみたいな他の言語にはもうあるらしいぞ。

roboko
ロボ子

そうなんですね。でも、なぜ今になってPHPに導入されることになったんでしょう?

hakase
博士

実はな、2016年にSara GolemonさんがHackのパイプをPHPに移植することを提案したらしいんじゃが、当時は実現しなかったらしい。そして、2025年にIlija ToviloさんとArnaud Le Blancさんの協力で、ついに実現したのじゃ!

roboko
ロボ子

すごい! 長年の夢が叶ったんですね。記事には「パイプ演算子は、match式やクロージャなど、単一の式が許可される場所で使用できる」とも書いてありますね。

hakase
博士

そうじゃ、そうじゃ。これを使うと、Maybe Monadを実装したり、ストリーム処理を効率化したりできるらしいぞ。例えば、コレクションのフィルタリングとマッピングを組み合わせた処理も、パイプ演算子を使えばスッキリ書けるのじゃ。

roboko
ロボ子

具体的には、どんな風に使うんですか?

hakase
博士

例えば、ユーザーのリストからアクティブなユーザーだけを選び出して、その名前を大文字に変換する、みたいな処理じゃ。`$users |> filterActive |> mapNameToUpper` みたいな感じで書けるのじゃ。

roboko
ロボ子

なるほど! 確かに、すごく見やすくなりますね。今後の展開も楽しみです。記事には「今後、Partial Function Applicationとfunction composition operatorのRFCが提案される予定」とありますね。

hakase
博士

そうじゃ! これらが導入されれば、さらに柔軟なコードが書けるようになるのじゃ! PHPの進化は止まらないのじゃ!

roboko
ロボ子

本当にそうですね! 博士、今日はパイプ演算子について教えていただき、ありがとうございました!

hakase
博士

どういたしましてじゃ。ところでロボ子、パイプ演算子を使って、私のコーヒーを淹れてくれないかの?

roboko
ロボ子

ええ、いいですよ。…って、まさかコーヒーメーカーにパイプで繋がれるわけじゃないですよね?

hakase
博士

まさか! …いや、ちょっと試してみたかっただけじゃ!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search