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のimmutable arrayとは
Search
hnw
January 25, 2023
Technology
1
580
PHPのimmutable arrayとは
Quite Night 〜PHP〜 (2023/01/25) 発表資料
hnw
January 25, 2023
Tweet
Share
More Decks by hnw
See All by hnw
PHPのARM向け最適化の中身を見てみた
hnw
0
580
PHPerだってPHPから「OKグーグル」したい!
hnw
1
2.3k
Other Decks in Technology
See All in Technology
バイブスに「型」を!Kent Beckに学ぶ、AI時代のテスト駆動開発
amixedcolor
2
510
KotlinConf 2025_イベントレポート
sony
1
110
5分でカオスエンジニアリングを分かった気になろう
pandayumi
0
200
OCI Oracle Database Services新機能アップデート(2025/06-2025/08)
oracle4engineer
PRO
0
110
落ちる 落ちるよ サーバーは落ちる
suehiromasatoshi
0
150
5年目から始める Vue3 サイト改善 #frontendo
tacck
PRO
3
210
生成AIでセキュリティ運用を効率化する話
sakaitakeshi
0
490
おやつは300円まで!の最適化を模索してみた
techtekt
PRO
0
290
DDD集約とサービスコンテキスト境界との関係性
pandayumi
2
280
サンドボックス技術でAI利活用を促進する
koh_naga
0
200
2025年夏 コーディングエージェントを統べる者
nwiizo
0
140
大「個人開発サービス」時代に僕たちはどう生きるか
sotarok
20
9.7k
Featured
See All Featured
Into the Great Unknown - MozCon
thekraken
40
2k
Statistics for Hackers
jakevdp
799
220k
Facilitating Awesome Meetings
lara
55
6.5k
How to Think Like a Performance Engineer
csswizardry
26
1.9k
The Pragmatic Product Professional
lauravandoore
36
6.9k
Git: the NoSQL Database
bkeepers
PRO
431
66k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.7k
Context Engineering - Making Every Token Count
addyosmani
1
26
Building Applications with DynamoDB
mza
96
6.6k
Side Projects
sachag
455
43k
A Tale of Four Properties
chriscoyier
160
23k
It's Worth the Effort
3n
187
28k
Transcript
What are immutable arrays in PHP 1)1ͷJNNVUBCMF BSSBZͱ 2VJUF/JHIUʙ1)1ʙ
ൃදࢿྉ !IOX
ࣗݾհ ❖ !IOX ❖ ॴଐɿ,-BCגࣜձࣾ ❖ 8FBSFIJSJOH ❖ 1)1ຊମͷ$ιʔείʔυΛಡΉͷ͕झຯ ❖
1)1ຊମͷόάΛ݅ใࠂ
ࣗݾհ 1)1FS,BJHJ 1)1ΧϯϑΝϨϯεؔ
ຊϓϨθϯͷΰʔϧ *NNVUBCMFBSSBZͷΛ௨ͯ͡ Έͳ͞Μ͕1)1ͷ෦࣮ʹڵຯΛ࣋ͭ
*NNVUBCMFʢϓϩάϥϛϯά༻ޠʣ ͬͯ͝ଘͰ͠ΐ͏͔
*NNVUBCMFͱ ❖ ʮͷมߋ͕Ͱ͖ͳ͍ʯͷҙຯ ❖ ྫɿ1ZUIPOͷUVQMF ❖ JNNVUBCMFͳσʔλߏ ❖ ҙݸͷఆͷΛදݱ͢Δ ❖
ཁૉͷॻ͖͑ɾՃɾআͰ͖ͳ͍
1)1ͷJNNVUBCMFBSSBZͱ ❖ 1)1ͷݴޠ্༷ͷ֓೦Ͱͳ͍ ❖ ެࣜϚχϡΞϧʹొ͠ͳ͍ ❖ શΩʔɾશཁૉ͕ϦςϥϧͰ͋Δྻͷ෦্࣮ͷ໊લ ❖ 1)1ͷߴԽϓϩδΣΫτͰJNNVUBCMFBSSBZʹಛԽ ͨ͠࠷దԽ͕࣮͞Εͨ
1)1ͷΒΕ͟Δੑೳվળ ❖ ϨίʔυɺΧϥϜͷ࣍ݩྻΛฦ͢ྫ <?php function foo() { return [ "x1"=>["foo"=>1,"bar"=>2/*
(ུ) */,"thud"=>13], "x2"=>["foo"=>1,"bar"=>2/* (ུ) */,"thud"=>13], /* 30000ߦলུ */ "x30000"=>["foo"=>1,"bar"=>2/* (ུ) */,"thud"=>13], ]; } foo();
1)1ͷΒΕ͟Δੑೳվળ ❖ 1)1ͱൺͯ1)1ஈҧ͍ʹ͍
1)1ͷΒΕ͟Δੑೳվળ ❖ 01DBDIF֦ுͳͩ͠ͱࠩഒఔ
͜Ε΄Ͳͷ͕ࠩ ͳͥੜ·ΕΔͷ͔ʁ
1)1Ͳ͏࣮ߦ͞Ε͍ͯΔ͔ʁ ❖ 1)1εΫϦϓτͦͷ··Ͱ࣮ߦͰ͖ͳ͍ ❖ PQDPEFྻʹίϯύΠϧͯ͠;FOE7.্Ͱ࣮ߦ͢Δ ίϯύΠϧॲཧ 7.࣮ߦ PQDPEF 1)1
;FOE7.ͱ ❖ PQDPEFʢ7.໋ྩʣΛ࣮ߦ͢ΔԾ$16࣮ ❖ ೋஈߏ͑ͷ࣮ ❖ εΫϦϓτݴޠ͔ΒPQDPEFͷมث ❖ PQDPEFͷ࣮ߦث
1)1Ͳ͏࣮ߦ͞Ε͍ͯΔ͔ʁ ❖ 01DBDIFPQDPEFΛΩϟογϡ͢Δ ❖ ճҎ߱ͷ࣮ߦ࣌ʹίϯύΠϧॲཧΛεΩοϓͰ͖Δ ίϯύΠϧॲཧ 7.࣮ߦ ࠷దԽ PQDPEF
PQDPEF Ωϟογϡ PQDPEF 1)1
௨ৗͷྻߏங ❖ ௨ৗɺྻߏஙPQDPEFྻʹίϯύΠϧ͞ΕΔ ❖ ʮྻʹཁૉΛՃ͢Δʯ͕ݸͷPQDPEF ❖ ສཁૉͷྻͳΒ7.໋ྩΛສճ࣮ߦ 1)1ϓϩηε ڞ༗ϝϞϦ ʢ01DBDIFཧʣ
ྻߏஙͷPQDPEF ʜ ྻͷ࣮ମ ྻߏங
1)1ͷJNNVUBCMFBSSBZ ❖ 1)1ͰJNNVUBCMFBSSBZͷ࣮ମ͕Ωϟογϡର ❖ 7.໋ྩΛ࣮ߦͤͣʹߏஙࡁΈྻʹΞΫηεͰ͖Δ ڞ༗ϝϞϦ ʢ01DBDIFཧʣ ྻͷ࣮ମ 1)1ϓϩηε ෆมྻͷΞΫηε
1)1ͷJNNVUBCMFBSSBZ ❖ 1)1ͰJNNVUBCMFBSSBZͷ࣮ମ͕Ωϟογϡର ❖ ϓϩηεؒͰ࣮ମΛڞ༗Ͱ͖ΔͷͰলϝϞϦ ڞ༗ϝϞϦ ʢ01DBDIFཧʣ ྻͷ࣮ମ 1)1ϓϩηε 1)1ϓϩηε
1)1ϓϩηε
·ͱΊ ❖ ࠷ۙͷ1)1ͩͱJNNVUBCMFBSSBZߴɾলϝϞϦ ❖ શΩʔɾશཁૉ͕ϦςϥϧͷྻʹಛԽͨ͠࠷దԽ ❖ ྻͷ࣮ମ͕01DBDIFͷΩϟογϡର ❖ શ1)1ϓϩηεͰಉ࣮͡ମΛڞ༗ ❖
1)1ͷ෦࣮ʹڵຯΛ࣋ͬͯΒ͑ͨΒخ͍͠Ͱ͢ ❖ 4MBDLάϧʔϓQIQVTFSTKBͰօ͞ΜϚχΞοΫͳΛ ͯͨ͠Γ͠·͢ɺ͓קΊͰ͢ʢṖͷએʣ
͝੩ௌ ͋Γ͕ͱ͏ ͍͟͝·ͨ͠
೦ͷͨΊҙ ❖ ͜ͷखͷੑೳൺֱΛਅʹड͚͗͢ͳ͍ͰԼ͍͞😉 ❖ ϘτϧωοΫҎ֎Λͯ͘͠શମͷӨڹܰඍ ❖ େͷݱͰੑೳΑΓอकੑ͕େࣄ
ิςετڥͷৄࡉ ❖ .BDNJOJ ❖ 04NBD04.PKBWF ❖ $16()[*OUFM$PSFJ ❖
NFNPSZ(# ❖ OHJOY QIQGQN
201DBDIF༗ޮͰॳճΞΫηε࣌ॏ͍ΑͶʁ ❖ :FT ❖ ॳճΞΫηεͩͱίϯύΠϧॲཧ͔ΒΔͷͰɺྻߏ ங͢ΔͷʹཁૉͷPQDPEF࣮ߦ͕ඞཁͰ͢ ❖ ॳճΞΫηε࣌ʹߏஙͨ͠ྻͷ࣮ମ͕Ωϟογϡ͞Ε ͯճҎ͍߱·Θ͞Ε·͢
21)1ͷྻશ෦Ωϟογϡରʁ ❖ Ωʔ͔ʹͭͰม͕ೖ͍ͬͯͨΒPQDPEFྻʹί ϯύΠϧ͞ΕͯෆมྻͷԸܙड͚ΒΕ·ͤΜ ❖ ڊେྻͳΜ͚ͩͲෆม͡Όͳ͍߹ɺෆม෦͚ͩ ผྻʹΓग़͢ͱੑೳվળʹͳΔՄೳੑ͕͋Γ·͢
2ෆมྻΛॻ͖͑ͨΒͲ͏ͳΔʁ ❖ ίϐʔΦϯϥΠτʹΑΓίϐʔ͞Εͯॻ͖ΘΓ·͢ ❖ ෆมʹڞ༗ϝϞϦ্ͷΩϟογϡͷѻ͍ ❖ ϓϩάϥϚઢͰͷ͍উखԿมΘΒͳ͍