PHP パイプ演算子を試してみる | TechDistill
> Source: Qiita_Trend
Execute Primary Source
// Problem
従来のPHPにおける多段階のデータ加工では、関数のネストが深くなると可読性が著しく低下する。また、中間変数への再代入を繰り返す記述は、コードの冗長性を招き、処理の意図を直感的に把握することを困難にさせていた。
// Approach
PHP 8.5で導入されるパイプ演算子(|>)を用いることで、左辺の値を右辺のcallableへ順次受け渡す記述が可能となる。これにより、データがどのように変換されていくかを、左から右への一方向の流れとして記述できる。複数引数の場合は、アロー関数を用いて値を渡す手法が示されている。
// Result
パイプ演算子の導入により、データ処理のパイプラインが簡潔に記述可能となる。現時点では複数引数の扱いにアロー関数を要する制約があるが、PHP 8.6で導入予定の部分適用機能が実装されれば、より洗練された関数型プログラミングに近い記述スタイルが実現される見込みである。
Senior Engineer Insight
> データ変換処理における可読性の向上は、大規模開発におけるコードレビューの負荷軽減と保守コストの低減に直結する。本機能は、複雑なデータ加工フローを「左から右」へ流れる直感的な記述に変えるポテンシャルを持つ。ただし、PHP 8.5時点では複数引数の扱いにアロー関数を要するため、記述の簡潔さは限定的だ。真の価値はPHP 8.6で予定されている部分適用との組み合わせで発揮される。実戦投入においては、チーム内でのコーディング規約の整備と、デバッグ時のスタックトレースの解釈への影響を考慮すべきである。