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
570
PHPerだってPHPから「OKグーグル」したい!
hnw
1
2.3k
Other Decks in Technology
See All in Technology
歴代のWeb Speed Hackathonの出題から考えるデグレしないパフォーマンス改善
shuta13
6
550
生成AI利用プログラミング:誰でもプログラムが書けると 世の中どうなる?/opencampus202508
okana2ki
0
160
EKS Pod Identity における推移的な session tags
z63d
1
170
Claude Code x Androidアプリ 開発
kgmyshin
1
330
夢の印税生活 / Life on Royalties
tmtms
0
140
AIに頼りすぎない新人育成術
cuebic9bic
3
340
サイボウズフロントエンドの横断活動から考える AI時代にできること
mugi_uno
3
1.2k
ウォンテッドリーのアラート設計と Datadog 移行での知見
donkomura
0
210
はじめての転職講座/The Guide of First Career Change
kwappa
5
4.5k
Telemetry APIから学ぶGoogle Cloud ObservabilityとOpenTelemetryの現在 / getting-started-telemetry-api-with-google-cloud
k6s4i53rx
0
160
不確実性に耐えて、どう進む?「あえて決めない」勇気と「楽しむ」戦略
mamedai55
1
100
「Roblox」の開発環境とその効率化 ~DAU9700万人超の巨大プラットフォームの開発 事始め~
keitatanji
0
150
Featured
See All Featured
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
Building Applications with DynamoDB
mza
96
6.6k
A Tale of Four Properties
chriscoyier
160
23k
Building an army of robots
kneath
306
45k
Navigating Team Friction
lara
188
15k
The Cost Of JavaScript in 2023
addyosmani
53
8.8k
Documentation Writing (for coders)
carmenintech
73
5k
Why Our Code Smells
bkeepers
PRO
338
57k
StorybookのUI Testing Handbookを読んだ
zakiyama
30
6k
Making the Leap to Tech Lead
cromwellryan
134
9.5k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
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ෆมྻΛॻ͖͑ͨΒͲ͏ͳΔʁ ❖ ίϐʔΦϯϥΠτʹΑΓίϐʔ͞Εͯॻ͖ΘΓ·͢ ❖ ෆมʹڞ༗ϝϞϦ্ͷΩϟογϡͷѻ͍ ❖ ϓϩάϥϚઢͰͷ͍উखԿมΘΒͳ͍