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
あの日見たバグを僕達はまだ公式ドキュメントで見れない / The bug we saw tha...
Search
Yoshihide Taniguchi
January 31, 2017
Programming
1
1.5k
あの日見たバグを僕達はまだ公式ドキュメントで見れない / The bug we saw that day
2017/01/31 PHP 勉強会 での LT 資料です
Yoshihide Taniguchi
January 31, 2017
Tweet
Share
More Decks by Yoshihide Taniguchi
See All by Yoshihide Taniguchi
PHP がフロントエンドエンジニアになってみた // from PHPer to Frontend
gs3
1
330
PHP7.2で始める型宣言
gs3
0
560
ISUCONのすゝめ // OUR ISUCON
gs3
3
1.4k
オブジェクト指向設計とデザインパターンの基礎 / Basics of object oriented design and design pattern
gs3
2
100k
1人から始める大規模Webアプリケーションの言語バージョンアップ / version up PHP in large scale application
gs3
20
5.2k
PHP 5.4 ~ 5.6 での追加機能のおさらいとバージョンアップへの誘い / php54 to 56 and version up
gs3
1
2.4k
ペパボを支える大統一CI基盤と人々
gs3
2
4.2k
PHP 5.3.x のアプリを PHP 7.0.x で動かすためにした n 個のこと
gs3
1
1.6k
今までやってきたこと これからやりたいこと
gs3
0
2.4k
Other Decks in Programming
See All in Programming
Web フロントエンドエンジニアに開かれる AI Agent プロダクト開発 - Vercel AI SDK を観察して AI Agent と仲良くなろう! #FEC余熱NIGHT
izumin5210
3
530
アメ車でサンノゼを走ってきたよ!
s_shimotori
0
220
あなたとKaigi on Rails / Kaigi on Rails + You
shimoju
0
140
After go func(): Goroutines Through a Beginner’s Eye
97vaibhav
0
390
品質ワークショップをやってみた
nealle
0
100
はじめてのDSPy - 言語モデルを『プロンプト』ではなく『プログラミング』するための仕組み
masahiro_nishimi
2
380
詳しくない分野でのVibe Codingで困ったことと学び/vibe-coding-in-unfamiliar-area
shibayu36
3
4.9k
非同期jobをtransaction内で 呼ぶなよ!絶対に呼ぶなよ!
alstrocrack
0
900
XP, Testing and ninja testing ZOZ5
m_seki
3
650
明日から始めるリファクタリング
ryounasso
0
140
Swift Concurrency - 状態監視の罠
objectiveaudio
2
520
CSC509 Lecture 05
javiergs
PRO
0
300
Featured
See All Featured
The Pragmatic Product Professional
lauravandoore
36
6.9k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.7k
Making the Leap to Tech Lead
cromwellryan
135
9.6k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
37
2.6k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
9
590
Visualization
eitanlees
149
16k
The Cult of Friendly URLs
andyhume
79
6.6k
Learning to Love Humans: Emotional Interface Design
aarron
274
41k
Building Adaptive Systems
keathley
44
2.8k
Designing Experiences People Love
moore
142
24k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Facilitating Awesome Meetings
lara
56
6.6k
Transcript
୩ޱఓӳ!SBWFMMM ͋ͷݟͨόάͷৄࡉΛ ୡ·ͩ ެࣜυΩϡϝϯτͰ ݟΕͳ͍
ࠓ͢͜ͱ w1)1ͷόʔδϣϯΞοϓதʹ౿Μͩόάʹ͍ͭͯ wܦҢ wࣄ݅ wରԠ
୩ޱఓӳ@ravelll ( ͨʹ͙ͪc͙ͬ͞Μ ͱݺΕ͍ͯ·͢
1)1ͷόʔδϣϯΞοϓΛ͍ͬͯͨ w͋Δ8FCΞϓϦέʔγϣϯͷϩʔϧ $ wc -l $(find . -name \*.php) |
tail -1 325048 total w1)11)1 wίʔυमਖ਼͕΄΅΄΅ྃɺಈ࡞ݕূΛ͍ͯͨ͠
͋Εͬ͜ͷػೳಈ͔ͳ͍ʜ wϖʔδʹΞΫηεͨ͠ΒඇಉظʹσʔλΛऔಘɾඳը w"KBYͰ(&5ͯ͠KTPOड͚औͬͯඳը wKTPOऔಘ࣌ʹ1)1ଆͰΤϥʔ͕ग़͍ͯͨ •PHP Warning: mb_convert_variables(): Cannot handle recursive
references in ʙ
mb_convert_variables()
NC@DPOWFSU@WBSJBCMFT ͱʁ wมͷͷΤϯίʔσΟϯάΛม͢Δؔ ex) mb_convert_variables(‘UTF-8’, ’EUC-JP’, $var); w$varʹ4USJOH "SSBZ 0CKFDUΛͤΔ
wNC@DPOWFSU@FODPEJOHͱҾͷॱ͕ҧ͏ʢ͔Θ͍͍ʣ mb_convert_variables($to_enc, $from_enc, $var); mb_convert_encoding($str, $to_enc[, $from_enc]);
Cannot handle recursive references in …
Cannot handle recursive references in …
SFDVSTJWFͳSFGFSFODFTʁ
wͦΜͳྻ͍ͯ͠ͳ͍ͧʜʁ wͱ͍͏͔ [‘a’, ‘b’] Ͱ͢Βಉ͡ΤϥʔʹͳΔͧʁʁʁ Ͳ͔͜ͷόʔδϣϯͰ༷͕มΘͬͨʹҧ͍ͳ͍ʂ ެࣜυΩϡϝϯτΛಡ͏ʂʂ
None
ಛʹݴٴ͞Εͯͳ͍
ʔϜࠔͬͨʜ wόʔδϣϯΞοϓલޙͰ1)1ͷιʔεΛಡΈൺͯΈͨͷͷ $ݴޠྗ͕ͯ͘࠶ؼࢀরΛݕ͢ΔΈ͕૿͑ͯΔ͜ͱҎ֎Α ͔͘Βͳ͍ʜ wNC@DPOWFSU@FODPEJOHؔΛ͏Α͏ʹΞϓϦέʔγϣϯͷ࣮ Λ͍͔ͯ͘͠͠ͳ͍ͷ͔ʜ͍Ͱ݁ߏͬͯΔͱ͜Ζ͋Δʜ
None
None
Ξοοο
ؔͷόά༷ͩͬͨ ‣ୈҾʢมݩͷΤϯίʔσΟϯάʣʹͭҎ্ͷΤϯίʔσΟϯ άΛࢦఆͨ͠ͱ͖ɺมରͷ"SSBZͷ࠶ؼతࢀরͷݕ͕ࠪਖ਼ৗʹ Ͱ͖ͳ͍ ex) mb_convert_variables(‘UTF-8’, ‘EUC-JP,Shift_JIS’, $val); mb_convert_variables(‘UTF-8’, ‘auto’,
$val); (‘auto’ ΤΠϦΞεͰɺmbstring.language=Japanese ͷͱ͖ͳΒ ‘ASCII,JIS,UTF-8,EUC-JP,SJIS’)
मਖ਼ϓϧϦΫग़ͯͨʢʣ ‣·͞ʹɺͳςετ͕Ճ͞Ε͍ͯͨʜʂ
ରԠ wόά͕ੜ·ΕΔલͷόʔδϣϯʢʣΛ͏͜ͱʹͨ͠ w͏1)1ܥ"DUJWF4VQQPSUͰͳ͘ͳΓେ͖ͳػೳ Ճ͕ͳ͍ wࠓؤுͬͯͱ͔ʹ͢ΔΑΓ9ʹ͘͢ؤுͬͨ ΄͏͕Α͍ͷͰʜʁ
·ͱΊ wόʔδϣϯΞοϓதʹݴޠͷόάͱग़ձͬͨΛڞ༗͠·ͨ͠ wNC@DPOWFSU@WBSJBCMFTͰϋϚͬͨ wݪҼ͕υΩϡϝϯτʹॻ͔Εͯͳ͔ͬͨ ʢݴٴͨ͠Ϣʔβίϝϯτ͋ͬͨʣ wؔࣗମʹόά͕͋Δ͜ͱ͕͔ͬͨ w1)1Λ͏͜ͱͰҰ୴ճආͨ͠