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
430
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
360
PHPerだってPHPから「OKグーグル」したい!
hnw
1
1.8k
Other Decks in Technology
See All in Technology
今年のRubyKaigiはProfiler Year🤘
osyoyu
0
270
FrontDoorとWebAppsを組み合わせた際のリダイレクト処理の注意点
kenichirokimura
1
690
推しは推せるときに推せ! プロダクトにフィードバックしていこう
nakasho
0
440
KubeConにproposalを送りたい人へのアドバイス
sat
PRO
3
270
EMとして2023年度に頑張ったこと / What we did well in FY2023 as a EM
pauli
1
200
アクセス制御にまつわる改善 / Improving access control
itkq
0
580
Gradle Build Scanを使ってビルドのことを知ろう potatotips #87
tomorrowkey
2
150
AOAI をきっかけに 社内の Azure 管理を見直した話
recruitengineers
PRO
1
430
AWS学習者向けにAzureの解説スライドを作成した話
handy
3
110
.NET Profiler in 2024.
kkamegawa
2
710
エンジニア候補者向け資料2024.04.24.pdf
macloud
0
3.3k
Babylon.jsと色々なものを組み合わせる:ブラウザのAPIやガジェットや2D描画ライブラリなど / Babylon.js 勉強会 vol.3
you
PRO
0
140
Featured
See All Featured
Six Lessons from altMBA
skipperchong
22
3k
Statistics for Hackers
jakevdp
790
220k
How to name files
jennybc
65
93k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
14
1.5k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
222
21k
The Pragmatic Product Professional
lauravandoore
26
5.8k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
10
1k
Unsuck your backbone
ammeep
663
57k
Designing for Performance
lara
602
67k
How to Ace a Technical Interview
jacobian
273
22k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
188
16k
For a Future-Friendly Web
brad_frost
172
9k
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ෆมྻΛॻ͖͑ͨΒͲ͏ͳΔʁ ❖ ίϐʔΦϯϥΠτʹΑΓίϐʔ͞Εͯॻ͖ΘΓ·͢ ❖ ෆมʹڞ༗ϝϞϦ্ͷΩϟογϡͷѻ͍ ❖ ϓϩάϥϚઢͰͷ͍উखԿมΘΒͳ͍