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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Akinori Takigawa
March 20, 2026
240
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
95
PHPUnitのテストイベントを使ってテストにかかる時間の計測をしよう
akinoriakatsuka
0
160
PHPでCQRS+ES入門
akinoriakatsuka
0
240
手軽に作れる電卓を作って イベントソーシングに親しもう CQRS+ESカンファレンス2026
akinoriakatsuka
0
950
Rubyで作る物理エンジン - 叡電LT
akinoriakatsuka
0
46
パイプ演算子の実装を覗いてみよう - 【非公式】PHPカンファレンス福岡2025・前日Meetup
akinoriakatsuka
0
52
技術的負債の会計学 - PHPカンファレンス広島2025
akinoriakatsuka
8
1.6k
スクラムをちゃんとやる勇気
akinoriakatsuka
0
75
キャリアを拓く! 登壇のススメ - PHPカンファレンス関西アフターパーティー in スマレジ
akinoriakatsuka
1
160
Featured
See All Featured
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.4k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.2k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
200
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
610
Between Models and Reality
mayunak
4
370
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
760
The Pragmatic Product Professional
lauravandoore
37
7.4k
A better future with KSS
kneath
240
18k
エンジニアに許された特別な時間の終わり
watany
107
250k
Embracing the Ebb and Flow
colly
88
5.1k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.6k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
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