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
PHPで常に象を意識する方法
Search
Shinya Saita
July 13, 2026
Technology
83
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
PHPで常に象を意識する方法
PHPのマスコットであるあの象を普段意識することって少ないですよね。
なので、それを嫌でも意識する方法を考えました。
Shinya Saita
July 13, 2026
More Decks by Shinya Saita
See All by Shinya Saita
hookで自作する Claude Code の「実況ボード」
shinyasaita
2
300
エンジニアの示唆に溢れている漫画『HUNTER×HUNTER』
shinyasaita
0
150
個人OSSが、机の上から世界に広がるまでの話
shinyasaita
1
430
AIコード生成×サプライチェーン攻撃 — PHPが直面する“二重の信頼問題
shinyasaita
0
770
Chrome拡張機能で会議の遅刻・延長を解消した話
shinyasaita
0
130
Claude Code 珍プレー好プレー
shinyasaita
0
440
失敗を資産に変えるClaude Code
shinyasaita
0
1.8k
みんなが知らないトランプの世界
shinyasaita
0
36
AI Agentのメモリを覗いてちょっと焦った話
shinyasaita
0
140
Other Decks in Technology
See All in Technology
bet_ai_day_2026_session02
agenticsec
1
700
はじめてのDatabricks:技術者向けワークショップ / beginner-workshop
databricksjapan
PRO
0
110
Sony-DroidKaigi2026
sony
0
290
KAEN Company Deck
kaen
PRO
0
260
AIエージェントを雇う前に決める5つのこと
knishioka
1
140
なぜSRE・セキュリティは評価されないのか?守りの組織を事業成長エンジンに変えた実践
cscengineer
PRO
0
1.1k
最新技術に積極チャレンジ!EKS共通基盤のこれまでとこれから
daitak
0
290
分割40%キーボードにスムーズに入門するには
hoto17296
1
220
AIで開発は速くなったのに、なぜ現場は楽にならないのか 〜あなたの組織のボトルネックを突き止めるワークショップ〜
jacopen
1
210
サーバー常駐型の 簡易障害調査AI エージェントを作ってみた話
masayoshi
1
520
人気商品が「ちゃんと買える」をつくる ー ECの負荷改善
ykagano
1
190
Webとヘルスデータ
yukukotani
0
130
Featured
See All Featured
New Earth Scene 8
popppiees
3
2.5k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
480
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
How to Think Like a Performance Engineer
csswizardry
28
2.8k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
510
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
510
Discover your Explorer Soul
emna__ayadi
2
1.3k
A better future with KSS
kneath
240
18k
Claude Code のすすめ
schroneko
67
230k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.3k
How STYLIGHT went responsive
nonsquared
100
6.3k
Transcript
1)1ͰৗʹΛҙࣝͰ͖Δ ํ๏ͷڞ༗ ʙͦͷ໊1"0ʙ ੪ాਅ ؔ1)1ษڧձ ؔ1)1ษڧձ1)1ͰৗʹΛҙࣝ͢Δํ๏ ੪ాਅ!ؔ1)1ษڧձ(JU)VCTIJOZB9!TBJUB@TIJOZB
ࣗݾհ ੪ాਅʢ͍ͨ͞͠Μʣ 8FCܥΤϯδχΞ ژग़ɾฌݿࡏॅ झຯɿͷͮ͘Γશൠ ಛٕɿΧʔυϚδοΫ (JU)VCTIJOZB9!TBJUB@TIJOZB
࡞ͬͯΔͷ #PLVDIJ ࣗ࡞ͷ.BSLEPXOΤσΟλʢ044ʣ 5BVSJ 3FBDU 3VTU ʢ1)1ͪΌ͏Μ͚ʣ IUUQTCPLVDIJDPN
ϊϕϧςΟ͠·͢ εςοΧʔ #PLVDIJͷϩΰ ᐼʢ͓͠Γʣ ཪ໘͕.BSLEPXOνʔτγʔτ ৭Μͳॻ͖ํΛܝࡌ ٕज़ॻʹڬΜͰ͑Δ
ຊ ؔ1)1ษڧձ1)1ͰৗʹΛҙࣝ͢Δํ๏ ੪ాਅ!ؔ1)1ษڧձ(JU)VCTIJOZB9!TBJUB@TIJOZB
ಥવͰ͕͢ 1)1ͷϚείοτΩϟϥɺ ͝ଘͰ͔͢ʁ ͍ͭ͜ͷ໊લ ؔ1)1ษڧձ1)1ͰৗʹΛҙࣝ͢Δํ๏ ੪ాਅ!ؔ1)1ษڧձ(JU)VCTIJOZB9!TBJUB@TIJOZB
&MF1)1BOU ʢΤϨϑΝϯτʣ ͦͷ·Μ·ͳ͍͔͍ ؔ1)1ษڧձ1)1ͰৗʹΛҙࣝ͢Δํ๏ ੪ాਅ!ؔ1)1ษڧձ(JU)VCTIJOZB9!TBJUB@TIJOZB
໊લͷ༝དྷ &MF1)1BOUʜΑ͘ݟΔͱ໊લʹ PHP ͕ೖͬͯΔ ͦͯ͠ PHP ͷจࣈΛ่͍ͯ͘͠ͱκͷܗʹͳΔΒ͍͠ ͨɺ͔ͨ͠ʹʁ ؔ1)1ษڧձ1)1ͰৗʹΛҙࣝ͢Δํ๏ ੪ాਅ!ؔ1)1ษڧձ(JU)VCTIJOZB9!TBJUB@TIJOZB
Ͱʜʜ ීஈ1)1Λॻ͍͍ͯͯɺ ͜ͷκΛۙʹײ͡Δ͜ͱɺ ʜʜͳ͍Ͱ͢ΑͶʁ ΄ΜͰɺͳΜͰυϠإͶΜ ؔ1)1ษڧձ1)1ͰৗʹΛҙࣝ͢Δํ๏ ੪ాਅ!ؔ1)1ษڧձ(JU)VCTIJOZB9!TBJUB@TIJOZB
ͬͱΛײ͡Δํ๏͕ແ͍ͷ͔ ͍͖ͬͱ͋ΔͩΖ͏ ͦ͜ʂʮผʹײͨ͘͡ͳ͍ͱ͔ʯݴͬͯΜ͡Όͳ͍Α ؔ1)1ษڧձ1)1ͰৗʹΛҙࣝ͢Δํ๏ ੪ాਅ!ؔ1)1ษڧձ(JU)VCTIJOZB9!TBJUB@TIJOZB
ͩͬͨΒ࡞Ζ͏ 1)1Λॻ͖ͳ͕Β ৗʹκΛҙࣝͰ͖Δݴޠ ؔ1)1ษڧձ1)1ͰৗʹΛҙࣝ͢Δํ๏ ੪ాਅ!ؔ1)1ษڧձ(JU)VCTIJOZB9!TBJUB@TIJOZB
ͦͷ໊ 1"0 1)1"OJNBM0SJFOUFE ʙ1"0ͱॻ͍ͯύΦʔϯͱಡΈ·͢ʙ ؔ1)1ษڧձ1)1ͰৗʹΛҙࣝ͢Δํ๏ ੪ాਅ!ؔ1)1ษڧձ(JU)VCTIJOZB9!TBJUB@TIJOZB
001ͳΒ͵"01 ੈ·͞ʹΦϒδΣΫτࢦ ʢ0CKFDU0SJFOUFE1SPHSBNNJOHʣͷ࣌ Ͱ1"0͕ఏএ͢Δͷʜʜ "OJNBM0SJFOUFE1SPHSBNNJOH ʢಈࢦϓϩάϥϛϯάʣ ॻ͚ॻ͘΄Ͳίʔυ͕ಈʹۙͮ͘ ؔ1)1ษڧձ1)1ͰৗʹΛҙࣝ͢Δํ๏ ੪ాਅ!ؔ1)1ษڧձ(JU)VCTIJOZB9!TBJUB@TIJOZB
1"0ͱ ϕʔε 1)1ʢϑΥʔΫͯ͠Ϗϧυʣ ༧ޠΛશ෦ʮκͷ໐͖ʯʹஔ͖͚͑ͨͩ ֦ுࢠ .pao ͺ͓ͺ Animal { //
class ύ͓ ͺ cry(): string { // public function ύ "ύΦʔϯ"; // return } } ˠίʔυ͕κͷ໐͖ͰຒΊਚ͘͞ΕΔ ؔ1)1ษڧձ1)1ͰৗʹΛҙࣝ͢Δํ๏ ੪ాਅ!ؔ1)1ษڧձ(JU)VCTIJOZB9!TBJUB@TIJOZB
໐͖Τϯίʔυ༷ ͨͬͨͭͷه߸Ͱશ༧ޠΛදݱ͢Δ ͺɾύɾ͓ɾΦ Իઅʢจࣈʣ ͺ͓ ύΦ ͺΦ
ύ͓ ඌʹ୯ಠ ͺ ύ Λ͚ͯح0, සॱʹ͍ه߸ΛׂʢΑ͘͏ޠ΄Ͳ͍ʣ શޠɾ࠷ͨͬͨจࣈ ؔ1)1ษڧձ1)1ͰৗʹΛҙࣝ͢Δํ๏ ੪ాਅ!ؔ1)1ษڧձ(JU)VCTIJOZB9!TBJUB@TIJOZB
Ϛοϐϯάྫʢൈਮʣ 1)1 1"0 1)1 1"0 function ͺ class ͺ͓ͺ return
ύ public ύ͓ if ͺ͓ foreach ύΦͺ echo ύΦ as ύΦύ new ͺΦ __halt_compiler ͺ͓ͺΦͺ͓ ϨΞ༧ޠ΄Ͳ໐͖͕͘ͳΓ·͢ɾɾɾʂ ؔ1)1ษڧձ1)1ͰৗʹΛҙࣝ͢Δํ๏ ੪ాਅ!ؔ1)1ษڧձ(JU)VCTIJOZB9!TBJUB@TIJOZB
#FGPSFɿී௨ͷ1)1'J[[#V[[ for ($i = 1; $i <= 100; $i++) {
if ($i % 15 === 0) { echo "FizzBuzz"; } elseif ($i % 3 === 0) { echo "Fizz"; } elseif ($i % 5 === 0) { echo "Buzz"; } else { echo $i; } echo PHP_EOL; } ΈΜͳେ͖ɺ͓ͳ͡Έͷ'J[[#V[[ ؔ1)1ษڧձ1)1ͰৗʹΛҙࣝ͢Δํ๏ ੪ాਅ!ؔ1)1ษڧձ(JU)VCTIJOZB9!TBJUB@TIJOZB
"GUFSɿ1"0Ͱॻ͘ͱʜ ͺΦͺ͓ ($ύΦ = 1; $ύΦ <= 100; $ύΦ++) {
ͺ͓ ($ύΦ % 15 === 0) { ύΦ "ͺ͓ύΦʔϯ"; } ύ͓ͺΦͺ ($ύΦ % 3 === 0) { ύΦ "ͺ͓"; } ύ͓ͺΦͺ ($ύΦ % 5 === 0) { ύΦ "ύΦʔϯ"; } ͺ͓ύ { ύΦ $ύΦ; } ύΦ PAO_PAO; } ը໘͕શ෦ͷ໐͖ʹʢԿ͔Θ͔ΒΜʣ ؔ1)1ษڧձ1)1ͰৗʹΛҙࣝ͢Δํ๏ ੪ాਅ!ؔ1)1ษڧձ(JU)VCTIJOZB9!TBJUB@TIJOZB
Έ ࣈ۟ղੳثΛվ Zend/zend_language_scanner.l ͷ༧ޠϦςϥϧΛ໐͖ʹஔˠSFDͰ ࠶ੜˠ make มπʔϧ token_get_all()
Ͱਖ਼֬ʹτʔΫϯղ͠༧ޠ͚ͩஔ ʢจࣈྻίϝϯτͷதͷʮύΦʯյ͞ͳ͍ʹʣ ؔ1)1ษڧձ1)1ͰৗʹΛҙࣝ͢Δํ๏ ੪ాਅ!ؔ1)1ษڧձ(JU)VCTIJOZB9!TBJUB@TIJOZB
ϥΠϒσϞ͠·͢ ؔ1)1ษڧձ1)1ͰৗʹΛҙࣝ͢Δํ๏ ੪ాਅ!ؔ1)1ษڧձ(JU)VCTIJOZB9!TBJUB@TIJOZB
ຯʹͩ͜Θͬͨ 1"0൛ .pao Λਖ਼࣮͘͠ߦ͢Δ 1"0൛ී௨ͷ1)1Λ࣮ߦͰ͖ͳ͍ ༧ޙॻ͖͍͑ͯΔͷͰવରԠͰ͖ͳ͍ มจࣈྻɾίϝϯτΛյ͞ͳ͍ php →
pao → php ͷม͕Մೳ ม༻ͷεΫϦϓτͰՄٯੑ͕͋Δ ܕώϯτ࡞Ζ͏͔ͱࢥ͕ͬͨɾɾɾ ػೳͤͯ͞Կͷͬͪ͜ΌΘ͔ΒΜͷͰஅ೦ ؔ1)1ษڧձ1)1ͰৗʹΛҙࣝ͢Δํ๏ ੪ాਅ!ؔ1)1ษڧձ(JU)VCTIJOZB9!TBJUB@TIJOZB
࣮ݩωλ͕͋Γ·͢ ͪͳΈʹ͜ͷωλɺશΦϦδφϧͰ͋Γ·ͤΜ IUUQTCMPHEBNFOJOOHFOODPNFOUSZ XFSMͷΦϚʔδϡͱͯ͠1)1ͰͬͯΈ·ͨ͠ ؔ1)1ษڧձ1)1ͰৗʹΛҙࣝ͢Δํ๏ 1FSMͷ༧ޠΛશ෦ w ʹͨ͠XFSM ʢCZμϝਓؒ͞Μʣ “
“ ੪ాਅ!ؔ1)1ษڧձ(JU)VCTIJOZB9!TBJUB@TIJOZB
·ͱΊ 1)1Λॻ͚ॻ͘΄Ͳκ͕໐͘ݴޠ1"0 Έͳ͞ΜΛײ͡ͳ͕Βϓϩάϥϛϯά͠·͠ΐ͏ʂ ύΦʔϯʂʂ ը૾Ҿ༻ݩ IUUQTQIQDPNFMFQIQBOU IUUQTKBXJLJQFEJBPSHXJLJ1)1@ ϓϩάϥϛϯάݴޠ ؔ1)1ษڧձ1)1ͰৗʹΛҙࣝ͢Δํ๏ ੪ాਅ!ؔ1)1ษڧձ(JU)VCTIJOZB9!TBJUB@TIJOZB