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
250
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
パイプ演算子の実装を 覗いてみよう
Akinori Takigawa
March 20, 2026
More Decks by Akinori Takigawa
See All by Akinori Takigawa
Nginxになりきって、FCGIでPHPと喋ろう
akinoriakatsuka
0
100
PHPUnitのテストイベントを使ってテストにかかる時間の計測をしよう
akinoriakatsuka
0
170
PHPでCQRS+ES入門
akinoriakatsuka
0
240
手軽に作れる電卓を作って イベントソーシングに親しもう CQRS+ESカンファレンス2026
akinoriakatsuka
0
1.1k
Rubyで作る物理エンジン - 叡電LT
akinoriakatsuka
0
47
パイプ演算子の実装を覗いてみよう - 【非公式】PHPカンファレンス福岡2025・前日Meetup
akinoriakatsuka
0
53
技術的負債の会計学 - PHPカンファレンス広島2025
akinoriakatsuka
8
1.6k
スクラムをちゃんとやる勇気
akinoriakatsuka
0
75
キャリアを拓く! 登壇のススメ - PHPカンファレンス関西アフターパーティー in スマレジ
akinoriakatsuka
1
160
Featured
See All Featured
Facilitating Awesome Meetings
lara
57
7.1k
Docker and Python
trallard
47
4.1k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
45k
The untapped power of vector embeddings
frankvandijk
2
1.8k
The Language of Interfaces
destraynor
162
27k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
200
Thoughts on Productivity
jonyablonski
76
5.3k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
330
Skip the Path - Find Your Career Trail
mkilby
1
180
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
290
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