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
14
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
15
札幌PHP勉強会 2年の振り返りと反省と今後の展望
uegaki_masahiro
0
69
印刷オペレーターから札幌市IT人材雇用プログラム研修1期生としてITキャリアを始めたお話
uegaki_masahiro
0
54
PHP_CakePHP_で開発された国産CMSのbaserCMSのお話.pdf
uegaki_masahiro
0
95
Other Decks in Programming
See All in Programming
in-process GraphQL のすすめ #ginzajs
izumin5210
4
1.3k
ルールを書いて終わらせないハーネスエンジニアリング
yug1224
5
1.9k
React本体のコードリーディング
high_g_engineer
1
150
Laravel Boostに学ぶ、AIにPHPを書かせる技術 〜OSSの実装から蒸留するエージェント制御の王道〜
kentaroutakeda
3
720
170k Jobs a Day on GKE: Scaling Mercari's CI Platform - and What's Next for AI-Native Development
junyaokabe
0
110
生成AI導入の「期待外れ」を乗り越える ー 開発フロー改革が目指す、真の組織変革
starfish719
0
4.7k
AIが無かった頃の素敵な出会いの話
codmoninc
1
460
運用ダッシュボードの設計を誰も教えてくれないのだけどみなさんどうしてるんですか? - チームに監視するという文化を根付かせるための第一歩を踏みたい -
satoshi256kbyte
1
130
ソフトウェア設計に溶けるインフラ ― AWS CDK のインフラ認識論
konokenj
3
800
KotlinConf Extended South Korea 2026 Keynote
l2hyunwoo
0
110
変わらないものが、変わるものを決める — 意図駆動開発 × イベントソーシング × イミュータブル | What Doesn't Change Decides What Can — IDD × Event Sourcing × Immutability
tomohisa
0
1.8k
仕様駆動開発へのトライを機に チームに適合する手法を模索し続けている話
freee
PRO
0
570
Featured
See All Featured
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
230
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
How to Talk to Developers About Accessibility
jct
2
520
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
430
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
470
Crafting Experiences
bethany
1
250
What's in a price? How to price your products and services
michaelherold
247
13k
The SEO Collaboration Effect
kristinabergwall1
1
520
Build your cross-platform service in a week with App Engine
jlugia
234
19k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
390
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
210
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で追加された パイプ演算子を使うことによってすっきり書けるように なった。 まとめ
モータルコンバット/ネクストラウンドを 観に行こう! 最後に