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
PHP8をざっくり解説してみる
Search
大塚真言
January 23, 2021
Programming
0
290
PHP8をざっくり解説してみる
大塚真言
January 23, 2021
Tweet
Share
More Decks by 大塚真言
See All by 大塚真言
自社プロダクトを作ってみた.pdf
shingen29
0
250
CI/CD実践入門! GitHub ActionsでCI/CD環境を作ってみよう!
shingen29
0
82
CI/CD実践入門! GitHub ActionsでCI/CD環境を作ってみよう!
shingen29
0
240
ユースケース駆動開発で自社プロダクトを作ってみた!
shingen29
1
6.3k
MDN Web Docsから学ぶ 公式ドキュメントを読むメリット
shingen29
0
810
最近のプロジェクトを振り返ってみる
shingen29
0
350
Style Guideとstylelintを使ってHTML/CSSを綺麗に書こう!
shingen29
2
780
Stripe CLIを触ってみた!
shingen29
1
220
プロジェクト管理ツールとしてGitLabと向き合ってみる
shingen29
0
72
Other Decks in Programming
See All in Programming
Symfony Mapper Component
soyuka
2
730
PHPで学ぶプログラミングの教訓 / Lessons in Programming Learned through PHP
nrslib
2
160
MCP with Cloudflare Workers
yusukebe
2
220
アクターシステムに頼らずEvent Sourcingする方法について
j5ik2o
4
250
Cloudflare MCP ServerでClaude Desktop からWeb APIを構築
kutakutat
1
540
暇に任せてProxmoxコンソール 作ってみました
karugamo
1
720
今年のアップデートで振り返るCDKセキュリティのシフトレフト/2024-cdk-security-shift-left
tomoki10
0
200
testcontainers のススメ
sgash708
1
120
return文におけるstd::moveについて
onihusube
1
1k
[JAWS-UG横浜 #76] イケてるアップデートを宇宙いち早く紹介するよ!
maroon1st
0
460
ソフトウェアの振る舞いに着目し 複雑な要件の開発に立ち向かう
rickyban
0
890
プロダクトの品質に コミットする / Commit to Product Quality
pekepek
2
770
Featured
See All Featured
Adopting Sorbet at Scale
ufuk
73
9.1k
The World Runs on Bad Software
bkeepers
PRO
65
11k
Practical Orchestrator
shlominoach
186
10k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
330
21k
The Language of Interfaces
destraynor
154
24k
Imperfection Machines: The Place of Print at Facebook
scottboms
266
13k
VelocityConf: Rendering Performance Case Studies
addyosmani
326
24k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
28
900
Become a Pro
speakerdeck
PRO
26
5k
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
Six Lessons from altMBA
skipperchong
27
3.5k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.1k
Transcript
PHP8Λͬ͘͟Γղઆͯ͠ΈΔ 2021/1/22 WebφΠτٶ࡚ vol.12 େ௩ਅݴ
ࣗݾհ
ࣗݾհ -BSBWFM 7VFKT 'JSFCBTF αφେ͖ͳ8FCΤϯδχΞ
ձࣾհ ߹ಉձࣾϊϚυϦ ۀظ ϝϯόʔ໊ 8FCαʔϏε։ൃ &$αΠτ։ൃ
202011݄26 Կͷʁ
ͷੜ
Ͱͳ͘
PHP8ͷੜ ʢϦϦʔεʣ
ओͳมߋ • JITίϯύΠϧʹΑΔੑೳվળ • Nullsafeԋࢉࢠʢψϧ҆શΦϖϨʔλʣ • Unionܕ • Matchࣜ •
ଞʹଟ
ͦͷલʹ Ξϯέʔτ
ͲͷόʔδϣϯΛͬͯΔʁ 1. PHP 5.x 2. PHP 7.0ʙ7.2 3. PHP 7.3ʙ7.4
4. PHP 8.0
ҎԼ 7.4 7.3 7.2 7.0-7.1 5.6 5.5ҎԼ IUUQTXUFDITDPNUFDIOPMPHJFTEFUBJMTQMQIQ όʔδϣϯ͝ͱͷ༻
PHP8ͷ৽ػೳ
JITίϯύΠϧ • JITʢJust-in-Time Compilerʣ˞࣮ߦ࣌ίϯύΠϥ • ίʔυΛϝϞϦʔʹΩϟογϡ͢ΔOPCacheͱซ༻ • ωΠςΟϒίʔυΛϝϞϦʔʹΩϟογϡ͢Δ͜ͱͰϓϩ άϥϜ࣮ߦΛߴԽ •
ΞϧΰϦζϜܥॲཧͰ2~3ഒఔ࣮ߦ্͕ͨ͠ɺ WordPressͳͲͷWebΞϓϦέʔγϣϯͰ%ఔ͔͠ ্͠ͳ͍
Nullsafeԋࢉࢠ DPVOUSZOVMM JG TFTTJPOOVMM \ VTFSTFTTJPOVTFS JG VTFSOVMM \ BEESFTTVTFSHFU"EESFTT
JG BEESFTTOVMM \ DPVOUSZBEESFTTDPVOUSZ ^ ^ ^ DPVOUSZTFTTJPO VTFS HFU"EESFTT DPVOUSZ 1)1 1)1 ifจʹΑΔnullνΣοΫ͕ෆཁʹͳΔ
Unionܕ !QBSBNqPBUcJOUOVNCFS QVCMJDGVODUJPOTBNQMF OVNCFS \
FDIPOVNCFS ^ UIJTTBNQMF UFHFIPHF ࣮ߦՄೳ QVCMJDGVODUJPOTBNQMF qPBUcJOUOVNCFS \ FDIPOVNCFS ^ UIJTTBNQMF UFHFIPHF ࣮ߦΤϥʔ 1)1 1)1 ࣮ߦ࣌ʹUnionܕͷܕνΣοΫ͕Ͱ͖Δ 1)1ͰΞϊςʔγϣϯ ʹΑΔิ
Matchࣜ TXJUDI \ DBTF SFTVMU0IOP CSFBL DBTF SFTVMU5IJTJTXIBU*FYQFDUFE CSFBL
^ FDIPSFTVMU 0IOP FDIPNBUDI \ 0IOP 5IJTJTXIBU*FYQFDUFE ^ 5IJTJTXIBU*FYQFDUFE 1)1 1)1 ݫີͳൺֱɺbreakจ͕ෆཁ
·ͱΊ • JITίϯύΠϧ͕ಋೖ͞Ε͕ͨɺ࣮ӡ༻ͷWebΞ ϓϦͷੑೳ্͋·ΓظͰ͖ͳ͍ • MatchࣜNullsafeԋࢉࢠΛ͏͜ͱͰεϦϜ ͳίʔυΛॻ͚Δ • Unionܕ͕Ճ͞ΕɺܕγεςϜ͕ΑΓڧݻʹ ͳͬͨ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ