なんとなくPHPのコードって、関数を次々に呼ぶとカッコがいっぱいで見づらいな〜って思ったことない?💭
わたしもプログラミング始めた頃は「これ、もっとスッキリできたらいいのに…」って何度も感じてたんだよね😳✨
そんな中、2025年7月にリリースされたPHP 8.5から、「パイプ演算子」っていう新機能が加わったみたい🎉
今回はそのパイプ演算子が何なのか、そしてどんなふうに使うと便利なのかをサクッと話してみるよ〜💡
パイプ演算子って何?
まずこれ、簡単に言うと「複数の処理をつなげて書ける記号」だよ🫶
具体的には、|>
という記号で、これを使うと…
// これまではこう書いてた
$result = trim(strtolower($input));
// パイプ演算子ならこう書ける
$result = $input |> strtolower(|>) |> trim(|>);
どう?なんだか処理の流れが左から右にスーッと読める感じだよね✨
「関数の中に関数を埋め込む」っていう、いわゆるネストが減る感じかな💭
なんでこれが便利?
PHPって昔からずっと人気あるけど、コードがゴチャっとなりがちなのはよくある話🥺
このパイプ演算子があれば、
- コードの可読性アップ
- 処理の流れが直感的に理解しやすくなる
- ちょっとしたミスが減りそう
っていうメリットが期待できるんだ✨
わたしみたいな初心者にも、いろんな関数が連続するとき「どこから呼ばれてるんだっけ?」って迷うことあるから、これは地味に助かるポイントかも💗
気になるところもチラリ
ただ、使いこなすには慣れが必要かもしれない…🤔
わたしも最初は「パイプ演算子!?なにそれ!?どう使うんだ??」って混乱したし💦
あと、まだ新しい機能だから、古い環境では使えないこともあるからそこは注意点かな〜🌸
まとめると?
- PHP 8.5からパイプ演算子
|>
が使えるようになった - 関数のネストが減って、コードが読みやすくなる
- まだ慣れが必要だけど、書き方が変わることでミスが減るかも
- 古いPHP環境では使えない可能性があるから、そこは気をつけてね!
なんだかコードの読みやすさって、毎日のちょっとしたストレスを減らす大事なポイントだと思うんだよね🥺✨
これからPHPを触る人も、経験ある人も、パイプ演算子をチラッと知っておくと便利かもって話でした💭
ではまた気になる新機能があったらシェアするね〜👀🌸
コメント
キンバリー
Javaのビルダーパターンやストリームパターンに演算子がついた感じだね。
ハンナ
標準ライブラリがゴチャゴチャで、引数の順番もバラバラ、変な真偽値が最初や最後に来たりして、すごく汚くなりそう。
ノーラン
PHPはいつも間違った方向にばかりこだわってて、長時間動くプログラムとか作れないのが残念。
リリー
2025年のUnicode事情は知らないけど、前見た時は面倒な拡張だけだった気がする。
エイダン
あと数年でどの言語も同じ文法になって、履歴書に「何でも書けます!」って書けそうだねw
クリス
Goでは短いラムダを追加するか7年も議論してるみたいだよ。
チャーリー
楽しみだね!
ロバート
もし投稿者が作者ならありがとう、他の説明よりずっと分かりやすかった。
ロバート
違う人なら投稿ありがとう!
サム
こんな演算子見たことなかったけど、なんか好きかも?
ミア
記事の通りで、複雑な一行コードや面倒な変数のゴチャゴチャをスッキリ書けるね。
ノーラン
「T_BLINGって何だよ?」って怒る人の投稿が楽しみだなw
ハンナ
ありがとう、嫌いだよ。 全然読みにくい。
レオ
これは意外と面白い。 Elixirで使われてる|>演算子が好きなんだよね。
グレース
Rubyにも提案があったけど、普通のメソッドチェーンと比べて特にメリットがないのが問題。
ノーラン
PHPの提案は残念で、例えば"Hello World" |> strlen(...)は結局strlen("Hello World")と同じで、かえってコードが増える。
サム
PHPの設計者は一度ウォッカをやめたほうがいいよ。
クロエ
$arr |> fn($x) => array_column($x, 'tags') |> fn($x) => array_merge(...$x) |> array_unique(...) |> array_values(...);
ミア
これで['a','b','c','d','e','x','y']が得られるけど、Rubyならもっと簡単にできる。
グレース
Rubyには.selectや.rejectがあって、|>の価値はそこまで高くないんだよね。
ロバート
でもRubyでは自分の使い方をちゃんと考えれば|>も役立ちそう。
ノーラン
PHPはもう絶望的で、俺は数年使ってたけど、今はRubyの方がずっとマシだと思う。
ハンナ
パイプなしで書くとこうなるけど、PHPの構文が問題で、Rubyならもっとスッキリ書けるよ。
クリス
|>は関数型言語でよく見かけて、F#やOCamlでもほぼ同じ。
リリー
Elixirはちょっと凝ったバージョンだけど、今は見送ったみたい。
キンバリー
RubyはElixirから影響受けてて、Matzも間接的に共同設計者みたいなもんだからね。
サム
PHPのパイプの話はFacebookのHack/HHVMから始まったけど、これもムカつく。
ノーラン
FacebookがPHPコミュニティから吸い取ってフォークで弱らせてるだけ。
ハンナ
今やFacebookが文法まで決めてるとか最悪。 PHPには関わりたくない。
エイダン
うわー、超カッコいい! PHPの帽子被って初めての仕事言語で関数型プログラミング始めたい!
リリー
速度が気になるな。 PowerShellのパイプラインはプロトタイプ作りに便利だけど、.NETの組み込み関数より遅いことが多いんだよね。
ジョージ
違う言語だけど似た問題がありそう。