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
パイプ演算子の実装を 覗いてみよう
Search
Akinori Takigawa
March 20, 2026
0
110
パイプ演算子の実装を 覗いてみよう
Akinori Takigawa
March 20, 2026
Tweet
Share
More Decks by Akinori Takigawa
See All by Akinori Takigawa
PHPでCQRS+ES入門
akinoriakatsuka
0
190
手軽に作れる電卓を作って イベントソーシングに親しもう CQRS+ESカンファレンス2026
akinoriakatsuka
0
710
Rubyで作る物理エンジン - 叡電LT
akinoriakatsuka
0
28
パイプ演算子の実装を覗いてみよう - 【非公式】PHPカンファレンス福岡2025・前日Meetup
akinoriakatsuka
0
32
技術的負債の会計学 - PHPカンファレンス広島2025
akinoriakatsuka
8
1.4k
スクラムをちゃんとやる勇気
akinoriakatsuka
0
55
キャリアを拓く! 登壇のススメ - PHPカンファレンス関西アフターパーティー in スマレジ
akinoriakatsuka
1
150
カンファレンスに参加したあなたが明日からできること
akinoriakatsuka
2
260
DIってなんだか難しい? 依存という概念を「使う・使われる」 という言葉で整理しよう
akinoriakatsuka
2
1.1k
Featured
See All Featured
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.9k
sira's awesome portfolio website redesign presentation
elsirapls
0
190
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
74
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
180
KATA
mclloyd
PRO
35
15k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
1
320
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
200
Writing Fast Ruby
sferik
630
63k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.2k
Fireside Chat
paigeccino
42
3.8k
The untapped power of vector embeddings
frankvandijk
2
1.6k
Transcript
͖͋ ύΠϓԋࢉࢠͷ࣮Λ ͍ͯΈΑ͏👀 1)1FS,BJHJQIQFSLBJHJ
ϓϩϙʔβϧ 1)1Ͱಋೖ͞ΕͨύΠϓԋࢉࢠʢcʣɺ͏͍ͬͯΔͰ͠ΐ͏͔ʁ ύΠϓԋࢉࢠΛ͏ͱɺ TUSUPVQQFS IFMMP ͱIFMMPcTUSUPVQQFS ͕ಉ͡ҙຯʹͳΓ·͢ɻ
࣮ɺྫʹ͋͛ͨͭͷࣜɺPQDPEFͱͯ͠ಉҰͰ͢ɻ
ϓϩϙʔβϧ ͜ͷτʔΫͰɺQIQTSDͷιʔείʔυΛಡΈղ͖ͳ͕ΒɺύΠϓԋࢉࢠ͕ͲͷΑ ͏ʹ࣮͞Ε͍ͯΔ͔Λݟ͍͖ͯ·͢ɻ ۩ମతʹҎԼͷ༰Λѻ͍·͢ w WMEͰͷPQDPEFͷൺֱ w PQDPEFͷίϯύΠϧʹΘΕΔ[FOE@BTUͱ[OPEF w
ύΠϓԋࢉࢠΛॲཧ͢Δ[FOE@DPNQJMF@QJQF 1)1ͷ৽ػೳΛ௨ͯ͡QIQTSDʹೖͯ͠Έ·͠ΐ͏
ࠓͷඪ w ʮϓϩάϥϛϯάݴޠͷιʔείʔυ໘നͦ͏͔ʁʯͱࢥͬͯΒ͏ 1)1ͷ৽ػೳΛ௨ͯ͡QIQTSDʹೖͯ͠Έ·͠ΐ͏
୍ ܒلʢ28ࡀʣ ͖͋ X: @aki_artisan ؔPHPษڧձओ࠵ PHPerྺͨͿΜ7͘Β͍ ը૾ɿPHPerKaigi
ύΠϓԋࢉࢠͱ
ͦͦʮԋࢉࢠʯͬͯ w ͻͱͭҎ্ͷ͔ΒผͷΛੜΈग़͢ͷ w B ʢՃࢉࢠʣ w ˠʢࢉज़ԋࢉࢠʣ w
DPOEJUJPO IPHFGVHBʢ݅ԋࢉࢠʣ w IUUQTXXXQIQOFUNBOVBMKBMBOHVBHFPQFSBUPSTQIQ
ύΠϓԋࢉࢠͷՃ w 1)1ͰՃ͞Ε߲ͨԋࢉࢠ w ࠨลʹࣜɺӈลʹύϥϝʔλΛͻͱͭऔΔDBMMBCMFΛͱΔ w TUSUPVQQFS bIPHF ͱॻ͘ͷͱɺIPHFcTUSUPVQQFS ʜ
ͱॻ͘ͷ͕ ಉ͡ҙຯʹͳΔ w ԋࢉࢠͷՃ1)1ͷ/VMMηʔϑԋࢉࢠ Ҏདྷ
DBMMBCMF w ݺͼग़͠ՄೳͳԿ͔Λද͢ܕ w 1)1Ͱ͍ΖΜͳͷ͕ίʔϧͰ͖Δ w Ϋϩʔδϟʔ w ໊ؔΛද͢จࣈྻ UJNF
w IUUQTXXXQIQOFUNBOVBMKBMBOHVBHFUZQFTDBMMBCMFQIQ
ࣜ w ʢͪΌΜͱઆ໌͢Δͷ͕͍͘͢͝͠ʣ w ʮ࠷؆୯Ͱ࠷ਖ਼֬ͳࣜͷఆٛɺ͕͋ΔͷશͯͰ͢ʯ ʢ1)1ݴޠϦϑΝϨϯεʣ w ͬ͞ͺΓΘ͔Βͳ͍😅 w ͬ͘͟Γݴ͑ɺͳͲͷͦͷͷɺBͳͲͷมɺBͳͲͷԋ
ࢉࢠΛؚΉͷͳͲ
ࣜͱจ w จલͷηϛίϩϯʢ͘͠ɺ1)1։࢝λάʣ͔Βɺ ηϛίϩϯͰऴΘΔ෦·Ͱ w B w Λฦ͞ͳ͍ w
B C ͱॻ͚ͳ͍ w ରͯ͠ɺB C ͱॻ͚ΔɻC͕ࣜͰ͋ΔͨΊɻ w ҙຯͳ͍͕ͱ͍͏จจ๏తʹڐ༰͞ΕΔ
༨ஊʣೖࣜΛฦ͢ w Bͱ͍͏ࣜʢೖࣜʣͱ͍͏Λฦ͢ w FDIP B ͕ग़ྗ͞ΕΔ w σϞ
w ؔݺͼग़͕͠ೖΕࢠʹͳΔͱ͖ʹಡΈ͘͢ͳΔ ύΠϓԋࢉࢠͷ༻్ #FGPSF "GUFS
͜͜·Ͱͷ·ͱΊ w ԋࢉࢠɺΛड͚औͬͯΛฦ͢ͷ w ύΠϓԋࢉࢠ1)1ͰՃ͞Ε߲ͨԋࢉࢠ w ؔͷೖΕࢠߏΛಡΈ͘͢͢Δͷʹ͑Δ
1)1Ͳ͏ιʔείʔυΛॲཧ͠ ͍ͯΔ͔
ԋࢉࢠͷ࣮Λ͘લʹ w ·ͣɺ1)1͕ͲͷΑ͏ʹಈ͍͍ͯΔ͔ܰ͘Δඞཁ͕͋Δ w HJUIVC্ʹιʔείʔυ͕ެ։͞Ε͍ͯΔ w IUUQTHJUIVCDPNQIQQIQTSD w $ݴޠͰॻ͔Ε͍ͯΔ
;FOE&OHJOF w 1)1ͷݴޠॲཧܥ w 4"1*Λܦ༝ͯ͠;FOE&OHJOFʹ1)1ίʔυύϥϝʔλ͕͞ΕΔ ʢࠓճɺৄࡉׂѪʣ -FYFS 1BSTFS $PNQJMFS 7.
τʔΫϯྻ "45 PQDPEF 1)1ίʔυ
-FYFS w ࣈ۟ղੳ w ιʔείʔυΛτʔΫϯྻʹ͢Δ w τʔΫϯͱιʔείʔυ্Ͱ࠷খͷҙຯͷ͋Δ୯Ґʢ୯ޠΈ͍ͨͳ୯Ґʣ w B
w ʮ͜͜Ͱ͖ͷΛ͵͍Ͱ͍ͩ͘͞ʯࣈ۟ղੳ͕͍͠ w ;FOE[FOE@MBOHVBHF@TDBOOFSM
τʔΫϯ w UPLFO@HFU@BMM ͰτʔΫϯྻΛՄࢹԽͰ͖Δ w σϞ w ͱͰࣈ۟ղੳͷ݁Ռ͕ҟͳΔ
w ߏจղੳ w τʔΫϯྻ͔Β"45Λग़ྗ͢Δ w "CTUSBDU4ZOUBY5SFFʢநߏจʣ w ʮ͍ͷࠇ͍؟ͷେ͖ͳগঁʯ ߏจղੳ͕͍͠ w
;FOE[FOE@MBOHVBHF@QBSTFSZ 1BSTFS IUUQTMFBEJOHFDPKQSE
$PNQJMFSͱ7. w ίϯύΠϥʔͰ"45Λ͞ΒʹPQDPEFͱ͍͏தؒදݱʹม͢Δ w ;FOE7.͕PQDPEFΛ࣮ߦ͢Δ͜ͱͰ1)1͕࠷ऴతʹ࣮ߦ͞ΕΔ w ग़ྗ4"1*ͷϋϯυϥʔΛݺͼग़ͯ͠ߦ͏ w ;FOE[FOE@DPNQJMFD w
;FOE[FOE@FYFDVUFD
͜͜·Ͱͷ·ͱΊ w 1)1ɺࣈ۟ղੳˠߏจղੳˠίϯύΠϧˠ࣮ߦͱ͍͏ྲྀΕͰ࣮ߦ͞ΕΔ -FYFS 1BSTFS $PNQJMFS 7. τʔΫϯྻ "45 PQDPEF
1)1ίʔυ
7-%ΛͬͯPQDPEFΛݟΔ
7-%ͱ w PQDPEFΛग़ྗ͢Δπʔϧ w 7VMDBO-PHJD%VNQFS w IUUQTEFSJDLSFUIBOTOMQSPKFDUTIUNMWME w IUUQTHJUIVCDPNEFSJDLSWME
7-%Ͱग़ྗͨ͠PQDPEFʢύΠϓԋࢉࢠͳ͠ʣ <?php echo strtoupper('hello');
<?php echo 'hello pipe!' |> strtoupper(...); 7-%Ͱग़ྗͨ͠PQDPEFʢύΠϓԋࢉࢠ͋Γʣ
PQDPEFͷൺֱ w PQDPEFͱͯ͠ΦϖϥϯυҎ֎શ͘ಉҰ w ͭ·Γɺ7.ʹ͞ΕΔPQDPEFͷ࣌Ͱؔݺͼग़͠ͱಉ͡ॲཧʹͳͬͯ ͍Δ🕵 w %PDLFSίϯςφͰࢼͤΔڥΛ࡞Γ·ͨ͠ w IUUQTHJUIVCDPNUBLJHBXBBLJOPSJQIQWME
͜͜·Ͱͷ·ͱΊ w PQDPEF7-%ΛͬͯμϯϓͰ͖Δ w ύΠϓԋࢉࢠͱؔݺͼग़͠ͰɺPQDPEF͕ಉҰʹͳΔ
ύΠϓԋࢉࢠͷ࣮
ύΠϓԋࢉࢠͷ1VMM3FRVFTU w ֘ͷϓϧϦΫ w IUUQTHJUIVCDPNQIQQIQTSDQVMM w มߋߦ w ͏ͪςετߦςετ
w ओཁͷػೳ෦ߦ΄ͲͰ࣮ݱ͞Ε͍ͯΔ
ύΠϓԋࢉࢠͷ1VMM3FRVFTU w มߋ w MFYFSͱQBSTFSͱDPNQJMFS w ςετϑΝΠϧͷՃ w /&84ͱ61(3"%*/(
ύΠϓԋࢉࢠͷ࣮ͷ͋Β·͠ w -FYFSͰcΛ5@1*1&τʔΫϯͱͯ͠ड͚औΕΔΑ͏ʹ͢Δ w 1BSTFSͰ5@1*1&τʔΫϯΛड͚औͬͨΒ;&/%@"45@1*1&ϊʔυΛ࡞Δ w $PNQJMFSͰ;&/%@"45@$"--ͳͲͷݺͼग़͠ͷϊʔυʹஔ͖͑Δ -FYFS 1BSTFS $PNQJMFS
7. τʔΫϯྻ "45 PQDPEF 1)1ίʔυ มߋ
ॲཧͷ֩৺෦ w $PNQJMFSͰ;&/%@"45@$"--ͳͲͷݺͼग़͠ͷϊʔυʹஔ͖͑Δ w ύΠϓԋࢉࢠͷOPEF͕དྷͨͱ͖ɺಉ͡ҙຯʹͳΔݺͼग़͠ͷϊʔυʹஔ ͖͍͑ͯΔ w ݺͼग़͠ͷϊʔυʹஔ͖͑ͯ͠·͑ɺ ͦͷઌͷॲཧͰैདྷͱಉ͡ݺͼग़͠ͷPQDPEF͕ग़ྗ͞ΕΔ w
7-%Ͱ֬ೝͨ͠ࣄ࣮ͱҰகʂ
[FOE@DPNQJMF@FYQS w ࠶ؼతʹ[FOE@DPNQJMF@FYQSΛݺͼग़͠ w OPEF͕ͦΕͧΕࢠͱͳΔOPEFΛ͍࣋ͬͯΔ w ߲ԋࢉࢠͰ͋ΕɺMFGUͱSJHIU͕͋Δ w ύΠϓԋࢉࢠͷϊʔυͰ͋Εɺ [FOE@DPNQJMF@FYQS@JOOFSͳͲΛܦ༝ͯ͠
[FOE@DPNQJMF@QJQF͕ݺΕΔ
[FOE@DPNQJMF@QJQF w GDBMM@BTUͱ͍͏ؔݺͼग़͠ͷϊʔυʹม͔͑ͯΒɺ [FOE@DPNQJMF@WBSʹ͍ͯ͠Δ ࡞͍ͬͯΔOPEF;&/%@"45@$"--
·ͱΊ ύΠϓԋࢉࢠͷॲཧ -FYFSͱ1BSTFSͰύΠϓԋࢉࢠͷϊʔυΛ࡞ΕΔΑ͏ʹ͠ɺ $PNQJMFSͰύΠϓԋࢉࢠͷϊʔυΛݺͼग़͠ͷϊʔυʹஔ͢Δ͜ͱͰ ࣮ݱ͞Ε͍ͯΔ
࣌ؒ༨Ε
HECͰ1)1ͷίϯύΠϧॲཧΛͬͯΈΔ w [FOE@DPNQJMF@QJQFʹḷΓண͘·Ͱ
͓͢͢Ίͷࢿྉ
ࠓճɺௐࠪʹཱͬͨπʔϧɾαʔϏε w %FFQ8JLJ w (%# w 7-% w 1)1ϚχϡΞϧ
1)1ʹ৽͍͠ԋࢉࢠΛ࣮͢ΔνϡʔτϦΞϧ w IUUQTCMPHTIJOYDPNFOUSZJNQMFNFOUJOHUIFSBOHFPQSBSBUPSJO QIQ w ࣮ࡍʹखΛಈ͔ͯ͠ɺ3BOHFԋࢉࢠΛՃͰ͖Δ w ʢࠓճ1)1ʹೖͬͨcԋࢉࢠͱඃΔͷͰɺҧ͏จࣈͰదٓಡΈସ͑Δඞཁ ͕͋Δʣ
(PݴޠͰͭ͘ΔΠϯλϓϦλ w ࣈ۟ղੳߏจղੳΛθϩ͔Βཧղ͢Δͷʹ ͱͯॿ͚ʹͳΔ w ະ༁͕ͩɺίϯύΠϥΛ࡞Δଓฤ͋Δ
QIQGQN QIQ ΛϏϧυͯ͠HECͰσόοά࣮ߦͰ͖Δ%PDLFS$PNQPTFڥ Λ࡞ͬͨ w IUUQTCMPHTIJOYDPNFOUSZHECQIQ w HECͷ͍ํͳͲৄ͍͠
QIQTSDΛಡΜͰΈΑ͏ w IUUQTGPSUFFKQQIQDPOQSPQPTBM BEEGEGDFDDD w ͬͱৄ͘͠QIQTSDͷಡΈํΛղઆ͍ͯ͠Δ
5IBOLZPV