Slide 1

Slide 1 text

ʁ גࣜձࣾϥΫε ࣉ੢ ఇ೫ stdClassって⼀体何者なんだ︖︕

Slide 2

Slide 2 text

⾃⼰紹介 ࣉ੢ ఇ೫ (ͯΒʹ͠ ͍ͩͳ) • גࣜձࣾϥΫε • νϟοτσΟʔϥʔ։ൃ՝ • ໊લͷ༝དྷ͸๭΢ϧτϥϚϯ ܦྺ • େࡕߴઐˠେֶਐֶ (2022ଔ) • ΤϯδχΞྺ 11Χ݄ • PHPྺ 8Χ݄

Slide 3

Slide 3 text

こんなことをお話しします︕ こんな⽅にオススメ︕ ✓ TUE$MBTT͕Α͘Θ͔Βͳ͍ॳ৺ऀ1)1FS ✓ ࠓ·ͰͳΜͱͳ͘࢖͖ͬͯͨதݎ1)1FS ✓ ࠓޙTUE$MBTTΛม͑ͯ͘ΕΔϕςϥϯ1)1FS TUE$MBTTͷੜ੒ํ๏ TUE$MBTTʹͰ͖Δ͜ͱɾͰ͖ͳ͍͜ͱ TUE$MBTTʹؔ͢Δٞ࿦ ͱ͋Δ։ൃऀͷߟ͑

Slide 4

Slide 4 text

1. stdClassの⽣成⽅法 ✓ OFXԋࢉࢠΛ࢖ͬͨΠϯελϯεԽ ✓ ΦϒδΣΫτܕ΁ͷஔ׵ ✓ ͍ΖΜͳؔ਺ͷฦΓ஋ͱͯ͠औಘ

Slide 5

Slide 5 text

2. stdClassにできること・できないこと 連想配列みたいに値を格納できるよ︕

Slide 6

Slide 6 text

連想配列みたいに値を格納できるよ︕ 2. stdClassにできること・できないこと 似たことができるのに配列と 書き⽅が異なるからややこしいね

Slide 7

Slide 7 text

2. stdClassにできること・できないこと 配列みたいにforeach⽂で回せるよ︕

Slide 8

Slide 8 text

2. stdClassにできること・できないこと 配列型みたいにforeach⽂で回せるよ︕ 配列の関数は使えないけどね・・・ ex) array_map, array_filer, array_merge, count, …

Slide 9

Slide 9 text

2. stdClassにできること・できないこと stdClassを継承したら動的プロパティを使えるよ︕

Slide 10

Slide 10 text

stdClassを継承したら動的プロパティを使えるよ︕ 2. stdClassにできること・できないこと 意図しないプロパティが⽣成されても 検知できないけどね。 PHP8.2で議論になってたのに・・・

Slide 11

Slide 11 text

ごめん、君苦⼿かも。 2. stdClassにできること・できないこと 結局stdClassって 何者なん︖︖

Slide 12

Slide 12 text

3. stdClassに関する議論 .BLJOHTUE$MBTTJUFSBCMF ✓TUE$MBTT͸5SBWFSTBCMFΠϯλʔϑΣʔεΛ࣮૷͢Δ ✓TUE$MBTTΛ഑ྻͱಉ͡ѻ͍ʹ͢Δ ൓Ԡ ✓TUE$MBTT͕഑ྻͷΑ͏ͳ࢖ΘΕํΛ͍ͯ͠Δ͸ೝ͍ࣝͯ͠Δ ✓ؔ਺ʹ഑ྻΛฦ͢Α͏ཁٻ͢Ε͹ྑ͍ ✓TUE$MBTTͷҙຯΛ௒͑ͨ໾ׂΛ࣋ͨͤΔͷ͸ࢍಉͰ͖ͳ͍

Slide 13

Slide 13 text

3. stdClassに関する議論 "MJBTTUE$MBTTUP%ZOBNJD0CKFDU ✓%ZOBNJD0CKFDUͱ͍͏ΤΠϦΞεΛ௥Ճ͢Δ ✓TUE$MBTTͷ໊લͱ໾ׂʹဃ཭͕͋Δ͔Β ൓Ԡ ✓ଟ͘ͷࢍಉΛಘ͍ͯͨ ✓͔͠͠طଘίʔυɺςετίʔυ΁ͷӨڹ͕޿ൣғ ✓ӨڹͷׂʹϝϦοτ͕গͳ͍

Slide 14

Slide 14 text

4. とある開発者の考え Nikita Popov

Slide 15

Slide 15 text

4. とある開発者の考え Mind you, stdClass is an anti-pattern. Instead of stdClass you should just be using an array. We should never have added stdClass. Nikita Popov

Slide 16

Slide 16 text

4. とある開発者の考え Mind you, stdClass is an anti-pattern. Instead of stdClass you should just be using an array. We should never have added stdClass. Nikita Popov ʢಈతϓϩύςΟͱಉ͡Α͏ʹ TUE$MBTT΋ഇࢭʹ͔ͨͬͨ͠΍Ζ͏ͳʣ

Slide 17

Slide 17 text

まとめ TUE$MBTTͬͯҰମԿऀͳΜͩʁʂ ✓1)1Ҏ߱Ͱ΋ಈతϓϩύςΟ͕࢖͑ΔۭͷΫϥε ✓ϨΨγʔίʔυͰ͸഑ྻͷΑ͏ͳ࢖ΘΕํΛ͍ͯ͠Δ TUE$MBTTͷཱͪҐஔ ✓ྑ͘͸ࢥ͍ͬͯͳ͍։ൃऀ͕Ұఆ਺ଘࡏ͢Δ ✓ͨͩ͠޿͘࢖ΘΕ͍ͯΔͨΊɺͳ͔ͳ͔มߋͰ͖ͳ͍ ✓ࠓޙTUE$MBTT͕ྑ͍ѻ͍Λͯ͠΋Β͑Δ͜ͱΛئ͏