Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
PHP8.5から導入されたパイプ演算子
Search
上垣雅弘 / UEGAKI Masahiro
June 22, 2026
Programming
6
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
PHP8.5から導入されたパイプ演算子
えびてく #7 で発表したライトニングトークのスライドです。
https://ebitech.connpass.com/event/393193/
上垣雅弘 / UEGAKI Masahiro
June 22, 2026
More Decks by 上垣雅弘 / UEGAKI Masahiro
See All by 上垣雅弘 / UEGAKI Masahiro
札幌PHP勉強会で得た知見とPHP_Sapporoでやりたい事
uegaki_masahiro
0
4
札幌PHP勉強会 2年の振り返りと反省と今後の展望
uegaki_masahiro
0
58
印刷オペレーターから札幌市IT人材雇用プログラム研修1期生としてITキャリアを始めたお話
uegaki_masahiro
0
45
PHP_CakePHP_で開発された国産CMSのbaserCMSのお話.pdf
uegaki_masahiro
0
88
Other Decks in Programming
See All in Programming
Embedded SREと共に達成した会員管理システムのAWS移行 - SRE NEXT 2026 ランチスポンサーセッション
niftycorp
PRO
1
3.2k
エンジニアにデザインハーネスを 〜デザインプロセスを規定するためのハーネス〜 / Design harness from an engineer's perspective
rkaga
2
1.8k
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
270
PostgreSQL 18で考えるUUID主キー
kazuhiro1982
0
430
型も通る、synthも通る、それでも危ない 〜AIのCDKの権限とコストを機械で検証する〜 / It Passes Type Checks, It Passes Synth Checks, but It’s Still Risky — Automatically Verifying Permissions and Costs in AI’s CDK —
seike460
PRO
1
460
torikago - Ruby::Boxで照らすモジュラモノリスの実行境界
se4weed
1
210
yield再入門 #phpcon
o0h
PRO
0
810
そこに3びきプロダクトがいるじゃろう——生成AI時代における“価値が届かない理由”の構造
kosuket
0
240
Lean は証明の正しさを確認するためだけのツールって思ってませんか?
inoueasei
1
120
ルールを書いて終わらせないハーネスエンジニアリング
yug1224
4
1.8k
使いながら育てる Claude Code — 開発フローの1コマンド化 × 繰り返し指摘の自動仕組み化
shiki_kakaku
0
1.2k
音楽のための関数型プログラミング言語mimiumにおける多段階計算の活用
tomoyanonymous
1
360
Featured
See All Featured
Ruling the World: When Life Gets Gamed
codingconduct
0
290
Believing is Seeing
oripsolob
1
170
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
A better future with KSS
kneath
240
18k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
420
Chasing Engaging Ingredients in Design
codingconduct
0
240
The Language of Interfaces
destraynor
162
27k
How to make the Groovebox
asonas
2
2.3k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.2k
BBQ
matthewcrist
89
10k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.9k
Code Reviewing Like a Champion
maltzj
528
40k
Transcript
PHP8.5から導入されたパイプ演算子 2026年6月20日 えびてく #7 上垣 雅弘
自己紹介 名前 : 上垣 雅弘 ハンドルネーム : 睦月 Xアカウント :
@ichigatu 札幌PHP勉強会の運営をしています。 猫の動画を見るのが好きです。 最近、モータルコンバット/ネクストラウンドを 映画館で観ました。
パイプ演算子(|>)が追加されました。 マニュアルより抜粋 https://www.php.net/manual/ja/language.ope rators.functional.php 最新のPHP8.5に追加された機能は?
PHP 8.5 以降では、callable に直接値を渡す演算子を サポートしています。 |> 演算子、または "パイプ" は、 右辺にパラメーターをひとつ取る
callable を受け入れ、 左辺値をそれに渡し、callable の結果を評価します。 右 辺の callable は、有効な PHP の callable であれば何 でも構いません: つまり、Closure、 第一級callableを 生成する記法、 __invoke() を実装したオブジェクトな どです。 パイプ演算子とは?
分かりやすく書くと、|>の左辺で実行した関数の結果を 右辺に渡して実行できる。 なるほど、分からん
<?php $result = "Hello World" |> strlen(...); echo $result, PHP_EOL;
$result = strlen("Hello World"); echo $result, PHP_EOL; ?> 例1 |> を使う
11 11 例1 出力結果
<?php $temp = "PHP Rocks"; $temp = htmlentities($temp); $temp =
str_split($temp); $temp = array_map(strtoupper(...), $temp); $temp = array_filter($temp, fn($v) => $v != 'O'); $result = $temp; print_r($result); ?> 例2 |> の呼び出しをチェインさせる パイプ演算子を使わない場合
Array ( [0] => P [1] => H [2] =>
P [3] => [4] => R [6] => C [7] => K [8] => S ) 実行結果
• $tempに”PHP Rocks”という文字列を格納 • HTML特殊文字の変換 • 文字列を「1文字ずつ」の配列に分解 • すべての文字を「大文字」に変換 •
文字 'O' を取り除く(フィルタリング) • 結果の代入と出力 何をやってるのか?
何行も$tempに格納されている配列が変更されて デバッグ時にも何回も変更されるので メンテンナンス性が非常に悪い。 とはいえネストして1行でまとめると、コードの 可読性が悪くなってしまう。 そこでパイプ演算子。 メンテナンス性の問題
<?php $result = "PHP Rocks" |> htmlentities(...) |> str_split(...) |>
(fn($x) => array_map(strtoupper(...), $x)) |> (fn($x) => array_filter($x, fn($v) => $v != 'O')) ; print_r($result); ?> パイプ演算子を使った場合
1つの変数や配列に対して処理をする場合、 数行に渡って関数を実行したり、 関数のネストをするよりも、PHP8.5で追加された パイプ演算子を使うことによってすっきり書けるように なった。 まとめ
モータルコンバット/ネクストラウンドを 観に行こう! 最後に