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コードの実行モデルを理解する / Understanding-the-PHP-Execu...
Search
shin1x1
May 10, 2024
Programming
2
2.8k
PHPコードの実行モデルを理解する / Understanding-the-PHP-Execution-Model
shin1x1
May 10, 2024
Tweet
Share
More Decks by shin1x1
See All by shin1x1
抽象化という思考のツール - 開発現場での活用 - / Abstraction-as-a-Tool-for-Thinking-in-dev
shin1x1
0
110
抽象化という思考のツール - 理解と活用 - / Abstraction-as-a-Tool-for-Thinking
shin1x1
1
1.1k
php-fpm がリクエスト処理する仕組みを追う / Tracing-How-php-fpm-Handles-Requests
shin1x1
6
3.7k
PHP ユーザのための OpenTelemetry 入門 / phpcon2024-opentelemetry
shin1x1
3
2.2k
制約の力 - 状態を限定する -
shin1x1
6
5.4k
Apple Silicon Mac 時代の PHP 開発環境構築 2021 / php-dev-env-on-m1-mac-era
shin1x1
2
4.8k
Docker イメージのマルチアーキテクチャビルド / docker-muti-arch-build
shin1x1
1
510
Domain modeling with PHP / domain-modeling-with-php-en
shin1x1
1
290
ドメインをモデリングしてPHPコードに落とし込む / domain-modeling-with-php8
shin1x1
15
7.4k
Other Decks in Programming
See All in Programming
Server Side Kotlin Meetup vol.16: 内部動作を理解して ハイパフォーマンスなサーバサイド Kotlin アプリケーションを書こう
ternbusty
3
220
What's new in Spring Modulith?
olivergierke
1
160
あなたとKaigi on Rails / Kaigi on Rails + You
shimoju
0
170
AI Agent 時代的開發者生存指南
eddie
3
1.9k
overlayPreferenceValue で実現する ピュア SwiftUI な AdMob ネイティブ広告
uhucream
0
190
CSC509 Lecture 03
javiergs
PRO
0
340
PHPに関数型の魂を宿す〜PHP 8.5 で実現する堅牢なコードとは〜 #phpcon_hiroshima / phpcon-hiroshima-2025
shogogg
1
270
『毎日の移動』を支えるGoバックエンド内製開発
yutautsugi
2
250
AI駆動で0→1をやって見えた光と伸びしろ
passion0102
1
480
iOSでSVG画像を扱う
kishikawakatsumi
0
120
フロントエンド開発のためのブラウザ組み込みAI入門
masashi
5
2.5k
Range on Rails ―「多重範囲型」という新たな選択肢が、複雑ロジックを劇的にシンプルにしたワケ
rizap_tech
0
6.7k
Featured
See All Featured
Building a Scalable Design System with Sketch
lauravandoore
463
33k
A designer walks into a library…
pauljervisheath
209
24k
Art, The Web, and Tiny UX
lynnandtonic
303
21k
The Pragmatic Product Professional
lauravandoore
36
6.9k
Statistics for Hackers
jakevdp
799
220k
How STYLIGHT went responsive
nonsquared
100
5.8k
Done Done
chrislema
185
16k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
10
600
How to Ace a Technical Interview
jacobian
280
24k
Leading Effective Engineering Teams in the AI Era
addyosmani
7
490
The Art of Programming - Codeland 2020
erikaheidi
56
14k
Being A Developer After 40
akosma
91
590k
Transcript
1)1ΧϯϑΝϨϯε߳ !TIJOY 1)1ίʔυͷ࣮ߦϞσϧΛཧղ͢Δ
D .BTBTIJ4IJOCBSB!TIJOY !TIJOY ৽ݪʢ͠ΜΒʣխ࢘ େࡕͰ8FCγεςϜ։ൃٕज़αϙʔτΛߦ͍ͬͯ·͢ wCMPH IUUQTCMPHTIJOYDPN w1PEDBTU1)1ͷݱ IUUQTQIQHFOCBTIJOYDPN
D .BTBTIJ4IJOCBSB!TIJOY ͡Ίʹ 👉͜ͷࢿྉެ։͠·͢ 👉࣮ߦϞσϧΛͬ͘͟ΓΠϝʔδͯ͘͜͠ͱ͕త આ໌Λ؆ུԽ͍ͯͨ͠Γলུ͍ͯ͠ΔՕॴ͕͋Γ·͢ 👉ײɺϑΟʔυόοΫ͓͍ͪͯ͠·͢ʂ QIQDPOLBHBXBPSGPSUFFϑΟʔυόοΫϖʔδ
D .BTBTIJ4IJOCBSB!TIJOY "HFOEB w 1)1ίʔυͷ࣮ߦϞσϧ w QIQGQN NPE@QIQ ͷ࣮ߦϞσϧ w
QIQίϚϯυͷ࣮ߦϞσϧ
D .BTBTIJ4IJOCBSB!TIJOY 1)1ίʔυͷ࣮ߦϞσϧ
D .BTBTIJ4IJOCBSB!TIJOY 1)1ίʔυͷ࣮ߦ 1)1 <?php echo date("Y-m-d"); 2024-05-11 1)1ίʔυΛ࣮ߦ͢Δʹ1)1͕ඞཁ
D .BTBTIJ4IJOCBSB!TIJOY 1)1ίʔυͷ࣮ߦ 1)1ϑΝΠϧ ίϯύΠϧ ΦϖίʔυΛ࣮ߦ 1)1 Φϖίʔυ 1)1ίʔυ͔ΒΦϖίʔυΛੜ࣮ͯ͠ߦ
D .BTBTIJ4IJOCBSB!TIJOY Φϖίʔυ w 1)1͕࣮ߦ͢Δ໋ྩ όΠφϦσʔλʢ͜͜ͰจࣈྻͰදݱʣ w 1)1࣌Ͱݸͷ໋ྩ͕͋Δ w Φϖίʔυྫ
"%%ʢՃࢉʣ 46#ʢݮࢉʣ &$)0ʢग़ྗFDIPจʣ
D .BTBTIJ4IJOCBSB!TIJOY 1)1ίʔυͷ࣮ߦ <?php echo date("Y-m-d"); INIT_FCALL 1 96 string("date")
SEND_VAL string("Y-m-d") V0 = DO_ICALL ECHO V0 1)1ίʔυ Φϖίʔυ */*5@'$"--࣮ؔߦએݴ 4&/%@7"-Ҿηοτ %0@*$"--࣮ؔߦ &$)0Λग़ྗ ίϯύΠϧ
D .BTBTIJ4IJOCBSB!TIJOY 1)1ίʔυͷ࣮ߦ <?php echo date("Y-m-d H:i:s"); INIT_FCALL 1 96
string("date") SEND_VAL string("Y-m-d H:i:s") V0 = DO_ICALL ECHO V0 1)1ίʔυ Φϖίʔυ ࣮ߦ 2024-05-11 ࣮ߦ݁Ռ
D .BTBTIJ4IJOCBSB!TIJOY 2ͲͪΒ͕ޮతʁ <?php echo "Hello\n"; 1)1ίʔυ Φϖίʔυ ίϯύΠϧ BQIQ
Hello CQIQ BQIQ CQIQ
D .BTBTIJ4IJOCBSB!TIJOY "ͲͪΒಉ͡Φϖίʔυ <?php echo "Hello\n"; 0000 ECHO string("Hello ")
1)1ίʔυ Φϖίʔυ ίϯύΠϧ BQIQ Hello CQIQ 0000 ECHO string("Hello ") BQIQ CQIQ
D .BTBTIJ4IJOCBSB!TIJOY ଞͷ1)1ϑΝΠϧͷ࣮ߦ w Φϖίʔυ*/$-6%&@03@&7"-Λ࣮ߦ͢Δ Φϖίʔυ࣮ߦ͔࣌͠ଞͷ1)1ϑΝΠϧΛίϯύΠϧͰ͖ͳ͍ Φϖίʔυ࣮ߦίϯύΠϧ࣮ߦΛ܁Γฦ͢ w */$-6%&@03@&7"-Λੜ͢Δ1)1໋ྩ w
JODMVEFJODMVEF@PODF w SFRVJSFSFRVJSF@PODF w FWBMʢจࣈྻ͔ΒͷίϯύΠϧɺ࣮ߦʣ w Φʔτϩʔμ্ه໋ྩΛݺΜͰ͍Δ
D .BTBTIJ4IJOCBSB!TIJOY FY-BSBWFMHFU@JODMVEFE@GJMFT Ϣʔβίʔυ࣮ߦલʹϑΝΠϧҎ্ΛίϯύΠϧ
D .BTBTIJ4IJOCBSB!TIJOY QIQGQNͷ࣮ߦϞσϧ
D .BTBTIJ4IJOCBSB!TIJOY 1)1࣮ߦڥ w 1)1ͷओͳ࣮ߦڥ QIQGQNʢ4"1*GQNDHJʣ'BTU$(*αʔό NPE@QIQʢ4"1*BQBDIFIBOEMFSʣ"QBDIFIUUQEϞδϡʔϧ QIQίϚϯυʢ4"1*DMJʣɿίϚϯυϥΠϯ w ίΞίϯϙʔωϯτಉ͕ͩ͡ར༻ํ๏͕ҟͳΔ
w QIQGQNͱNPE@QIQࣅ࣮ͨߦϞσϧ
D .BTBTIJ4IJOCBSB!TIJOY )551ϦΫΤετॲཧͷྲྀΕ OHJOY QIQGQN )551 4 'BTU$(* (&5OPXQIQ QBUIUPOPXQIQ
OPXQIQΛ࣮ߦ Content-type: text/html; charset=UTF-8 2024-05-04
D .BTBTIJ4IJOCBSB!TIJOY QIQGQNϦΫΤετϥΠϑαΠΫϧ OHJOY 1)1ϑΝΠϧΛ ίϯύΠϧɺ࣮ߦ 1)1ͷΛഁغ ίϯύΠϧ݁ՌΛഁغ QIQGQN */$-6%&@03@&7"-͕͋Ε܁Γฦ͢
ϦΫΤετ։࢝ίϯύΠϧ͔Β࢝·Δ ࣮ߦίϯςΫετϦΫΤετ୯Ґ
D .BTBTIJ4IJOCBSB!TIJOY QIQGQN࣮ߦϞσϧͷಛ w ϦΫΤετίϯςΫετ͔͠ͳ͍ άϩʔόϧมΫϥεมϦΫΤετͰͷΈڞ༗ࣄނ͕ى͜Γʹ͍͘ w ঢ়ଶΛ͞ͳ͍ ӡ༻ָ͕ʢΥʔϜΞοϓෆཁɺεέʔϧΠϯΞτ͕༰қͳͲʣ w
ϦΫΤετຖʹ1)1ϑΝΠϧΛίϯύΠϧ ͦΕͰ࣮༻తͳͰಈ࡞͢Δ1)1ʂ 01DBDIFͰίϯύΠϧ݁ՌΛΩϟογϡͯ͠վળՄೳ IUUQTXXXQIQOFUPQDBDIF
D .BTBTIJ4IJOCBSB!TIJOY QIQGQN։ൃͰͷߟ͑ํ w ίʔυΛॻ্͘ͰͷϕετϓϥΫςΟεมΘΒͳ͍ มͷείʔϓΛඞཁ࠷ݶʹ͢Δ ෆཁͱͳͬͨϦιʔεղ์ w ϦΫΤετ͕ಠཱ͍ͯ͠Δ͜ͱ҆શஔ w
ಈ࡞ΛѲ͢Δ্Ͱͷϕʔεͱͯ͠ཧղ͢Δ
D .BTBTIJ4IJOCBSB!TIJOY QIQίϚϯυͷ࣮ߦϞσϧ
D .BTBTIJ4IJOCBSB!TIJOY QIQίϚϯυ࣮ߦϞσϧ QIQίϚϯυ QIQ ϓϩηεऴྃ࣌ʹΫϦΞ ࣮ߦίϯςΫετϓϩηε୯Ґ 1)1ϑΝΠϧΛίϯύΠϧɺ࣮ߦ */$-6%&@03@&7"-͕͋Ε܁Γฦ͢
D .BTBTIJ4IJOCBSB!TIJOY QIQίϚϯυ࣮࣌ؒߦ͢Δͷҙ w άϩʔόϧมΫϥεมͳͲڞ༗͞ΕΔ w Ϧιʔεղ์໌ࣔతʹඞཁ ϝϞϦϦʔΫͳͲɺϦΫΤετ୯ҐͰʹͳΒͳ͍͕ɺ࣮࣌ؒߦͰݦࡏԽ ͢Δ͜ͱ w
ϦΫΤετ୯Ґͷ࣮ߦϞσϧ͕લఏʹͳ͍ͬͯΔ͜ͱ͕ଟ͍ ϓϩάϥϚͷϝϯλϧϞσϧ 044ͷϑϨʔϜϫʔΫϥΠϒϥϦ δϣϒΩϡʔͷϫʔΧʔ 4XPPMF3FBDU1)1Λར༻ͨ͠ 8FCΞϓϦέʔγϣϯͳͲ
D .BTBTIJ4IJOCBSB!TIJOY ·ͱΊ
D .BTBTIJ4IJOCBSB!TIJOY ·ͱΊ w 1)1ίʔυίϯύΠϧ͞ΕɺΦϖίʔυΛ࣮ߦ w ଞͷ1)1ϑΝΠϧ࣮ߦ࣌ʹϑΝΠϧͮͭίϯύΠϧ w QIQGQN NPE@QIQ
ϦΫΤετ୯Ґͷ࣮ߦ w QIQίϚϯυϓϩηε୯Ґͷ࣮ߦ