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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Shinya Saita
July 13, 2026
Technology
82
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
260
エンジニアの示唆に溢れている漫画『HUNTER×HUNTER』
shinyasaita
0
140
個人OSSが、机の上から世界に広がるまでの話
shinyasaita
1
420
AIコード生成×サプライチェーン攻撃 — PHPが直面する“二重の信頼問題
shinyasaita
0
760
Chrome拡張機能で会議の遅刻・延長を解消した話
shinyasaita
0
130
Claude Code 珍プレー好プレー
shinyasaita
0
440
失敗を資産に変えるClaude Code
shinyasaita
0
1.7k
みんなが知らないトランプの世界
shinyasaita
0
36
AI Agentのメモリを覗いてちょっと焦った話
shinyasaita
0
140
Other Decks in Technology
See All in Technology
Data Hubグループ 紹介資料
sansan33
PRO
0
3.2k
どんな手を使っても絶対間に合わせるスケジューラ
asari194617
0
1.5k
AIエージェントのためのデータ設計
daiz21
0
560
紙 to デジタル
ichien178
0
450
会計事務所と顧問先の契約関係をOIDC・OAuthで表現する
terara
0
540
カーネルまで探検して理解するふたつの自動計装
sumiyae
0
350
Hub & Spoke 環境のネットワークルーティングを分解してみる
tsuyataku
0
440
全社に広がるMCPサーバーを、 どう安全に管理するか MCPass開発の舞台裏
mtpooh
3
200
Eight Engineering Unit 紹介資料
sansan33
PRO
3
8.3k
アクセスキー流出時の対応で再認識した攻撃側と防御側の非対称性について
kazzpapa3
1
470
Claude Codeの体系的な理解と知識のフック
oikon48
10
6.2k
Digital Credentials API × OpenID4VP ブラウザ完結型本人確認の実装知見(OAuth/OIDC Numa (Immersion) Workshop 2026)
oidfj
PRO
0
380
Featured
See All Featured
The Mindset for Success: Future Career Progression
greggifford
PRO
0
480
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.9k
Statistics for Hackers
jakevdp
799
230k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
450
Skip the Path - Find Your Career Trail
mkilby
1
200
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.3k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.4k
Speed Design
sergeychernyshev
33
2k
How STYLIGHT went responsive
nonsquared
100
6.3k
Leo the Paperboy
mayatellez
8
2.2k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.7k
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