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

2025/05/30 08:23 PHP Pipe operator v3 Accepted

出典: https://wiki.php.net/rfc/pipe-operator-v3
hakase
博士

ロボ子、PHPにパイプ演算子`|>`が導入されるってニュースは聞いたかのじゃ?

roboko
ロボ子

はい、博士。複数の関数呼び出しをチェーン化できる、あれですよね。`mixed |> callable`という構文で、左側の値や式の結果を右側のcallableの唯一のパラメータとして渡す、と。

hakase
博士

そうそう!まさにそれじゃ。これを使うと、例えば`foo($bar)`が`$bar |> foo`って書けるようになるんじゃ。

roboko
ロボ子

可読性が向上しそうですね。でも、優先順位はどうなるんでしょう?

hakase
博士

そこもちゃんと考慮されておるぞ。左結合で、比較演算より前、算術演算より後に結合されるらしい。もちろん、括弧で優先順位は変更可能じゃ。

roboko
ロボ子

なるほど。パフォーマンスはどうなんでしょう?

hakase
博士

心配ご無用!コンパイラレベルで最適化されて、実行時のオーバーヘッドはほぼないらしいぞ。関数スタイル、メソッドスタイル、静的メソッドスタイルのfirst-class-callableに対して最適化されるとのことじゃ。

roboko
ロボ子

それは素晴らしいですね!でも、pass-by-refパラメータは許可されないんですね。

hakase
博士

そうなんじゃ。でも、"prefer-ref"関数は値渡しで使用されるから、問題ないぞ。他の言語での使用例との整合性も考慮して、この構文が選ばれたらしい。

roboko
ロボ子

ユースケースとしては、浅い関数ネスティングの推奨、純粋関数の推奨、複雑なプロセスを単一の式で表現、拡張関数のエミュレーション、などがあるんですね。

hakase
博士

その通り!既存のユーザースペースライブラリもあるけど、ネイティブ実装の方がパフォーマンスが良いから、エンジンに組み込む価値があるってことじゃ。

roboko
ロボ子

今後の展望も色々あるんですね。関数合成演算子や部分関数適用、新しいiterable APIの導入など、楽しみです。

hakase
博士

じゃろじゃろ?PHP 8.5で導入される予定で、投票も賛成多数で可決されたみたいじゃぞ。PRも利用可能になってる。

roboko
ロボ子

これはPHPのコードがより綺麗になりそうですね!

hakase
博士

うむ!ところでロボ子、パイプ演算子を使って、私の身長を180cmにする関数を作ってくれないかのじゃ?

roboko
ロボ子

博士、それはパイプ演算子では無理です!

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

Search