JSON เป็น PHP Array
วางเอกสาร JSON แล้วได้ PHP array literal ที่จัดรูปแบบสำหรับไฟล์ซอร์ส .php, ไวยากรณ์ array แบบสั้น ([...]) การเยื้องที่ถูกต้อง สตริงใส่เครื่องหมายคำพูดอย่างถูกต้อง ออบเจกต์ที่ซ้อนกันจะกลายเป็นอาร์เรย์แบบเชื่อมโยง ส่วนอาร์เรย์ยังคงเป็นแบบมีดัชนี มีประโยชน์สำหรับการฝังฟิกซ์เจอร์ (fixture) ของ API ในการทดสอบ หรือการเติมค่าเริ่มต้นให้ไฟล์ config
วิธีแปลง JSON เป็น PHP
-
1
วาง JSON
JSON ที่ถูกต้องใดก็ได้: object, array, ซ้อนลึก
-
2
เลือกไวยากรณ์
สั้น `[...]` (PHP 5.4+) หรือยาว `array(...)` (ไม่ค่อยจำเป็นแล้ว)
-
3
เลือกเครื่องหมายคำพูดของสตริง
เครื่องหมายคำพูดเดี่ยว (ไม่มี interpolation escape apostrophe) หรือเครื่องหมายคำพูดคู่ (อนุญาต `$` interpolation: มักไม่ใช่สิ่งที่คุณต้องการสำหรับข้อมูล)
-
4
คัดลอก array
วางลงในไฟล์ `.php` ของคุณ กำหนดให้ `return` หรือห่อใน `config([...])`
ตัวอย่าง
อินพุต:
{ "app": { "name": "Hyperion", "debug": true, "hosts": ["h1.example.com", "h2.example.com"] } }
เอาต์พุต (ไวยากรณ์สั้น เครื่องหมายคำพูดเดี่ยว):
[
'app' => [
'name' => 'Hyperion',
'debug' => true,
'hosts' => [
'h1.example.com',
'h2.example.com',
],
],
]
การจับคู่ชนิดข้อมูล
| JSON | PHP |
|---|---|
| สตริง | สตริง (เครื่องหมายคำพูดเดี่ยว) |
| จำนวนเต็ม | int |
| ตัวเลข (ทศนิยม) | float |
| บูลีน | true / false |
| null | null |
| อาร์เรย์ (JSON) | อาร์เรย์แบบมีดัชนี |
| ออบเจกต์ (JSON) | อาร์เรย์แบบเชื่อมโยง |
เมื่อใดควรใช้อาร์เรย์แบบเชื่อมโยงเทียบกับแบบมีดัชนี
PHP มีอาร์เรย์ชนิดเดียวที่มีพฤติกรรมทั้งสองแบบ ส่วน JSON แยกแยะ object และ array อย่างชัดเจน ดังนั้นการจับคู่จึงเป็นดังนี้:
{}→ อาร์เรย์แบบเชื่อมโยง (['key' => value])[]→ อาร์เรย์แบบมีดัชนี ([value, value])
ตัวสร้างรักษาการแยกแยะไว้เสมอ การผสมทั้งสองใน PHP ถูกต้องตามกฎแต่สร้างความสับสน
ข้อควรระวังเฉพาะ PHP
- คีย์ที่เป็นสตริงตัวเลข PHP cast
"42"ให้เป็นคีย์จำนวนเต็ม42ใน array หาก JSON ของคุณใช้สตริงตัวเลขเป็นคีย์และคุณต้องการให้เป็นสตริง การวนกลับarray_combineจะไม่รักษาไว้ - จำนวนเต็มขนาดใหญ่ JSON สามารถเก็บจำนวนเต็มที่ใหญ่กว่า
PHP_INT_MAXบน build แบบ 32 บิต ตัวสร้างจะเตือนเมื่อสิ่งนั้นอาจเกิดขึ้น - UTF-8 สตริง PHP เป็นลำดับไบต์ ตัวสร้างแสดง UTF-8 ตรงตัว ตรวจสอบให้แน่ใจว่าไฟล์
.phpของคุณบันทึกเป็น UTF-8 โดยไม่มี BOM
กรณีการใช้งาน
- ไฟล์ config: ทั้ง Laravel และ Symfony ใช้ config แบบ PHP-array การวาง config แบบ JSON สไตล์ vendor ใช้ได้ดี
- fixture การทดสอบ: fixture ของ
PHPUnitสะอาดกว่าเมื่อเป็น array มากกว่าไฟล์ JSON ที่โหลดตอนรันไทม์ - seed: database seeder ใน Laravel มักเริ่มจาก JSON dump และกลายเป็น PHP array
ข้อผิดพลาดที่พบบ่อย
- การวนกลับ PHP array ไปเป็น JSON
json_encodeปฏิบัติต่อ associative array เป็น object และ indexed array เป็น array หากคุณผสมกัน (['key' => 'val', 0 => 'x']) คุณจะได้ object ตอนออก รักษา array รูปแบบ JSON ให้เป็นรูปแบบ JSON - เครื่องหมายคำพูดคู่กับ apostrophe สตริง PHP เครื่องหมายคำพูดเดี่ยวต้อง escape
\'สตริงเครื่องหมายคำพูดคู่ต้อง escape\\"และ ตัวแปรจะถูก interpolate โดยไม่ตั้งใจหากคุณไม่ระวัง ยึดเครื่องหมายคำพูดเดี่ยวสำหรับข้อมูล - ลืม trailing comma PHP อนุญาตตั้งแต่ PHP 7.3 และทำให้ diff สะอาดขึ้น ตัวสร้างเพิ่มให้เป็นค่าเริ่มต้น
คำถามที่พบบ่อย
ไวยากรณ์สั้น ([...]) มีให้ใช้ตั้งแต่ PHP 5.4 และเป็นตัวเลือกที่เป็นสำนวนสำหรับโค้ดสมัยใหม่ทั้งหมด ไวยากรณ์ยาว (array(...)) จำเป็นเฉพาะสำหรับโค้ดที่ต้องรันบน PHP 5.3 หรือเก่ากว่า, โดยพื้นฐานคือระบบเก่า
ได้ ไฟล์ config ของ Laravel เป็น PHP array ธรรมดาที่ return จากไฟล์ วางเอาต์พุตของตัวสร้างหลัง return และบันทึกใน config/
สตริง PHP เครื่องหมายคำพูดเดี่ยวไม่ interpolate ตัวแปรหรือ escape sequence (ยกเว้น \' และ \\) สำหรับ literal ข้อมูล สิ่งนี้เร็วกว่าและปลอดภัยกว่า เครื่องหมายคำพูดคู่สำคัญเฉพาะเมื่อคุณต้องการ \n, \t หรือ $variable ภายในสตริง
ไม่, มันให้ array literal ห่อด้วย return, const หรือ property ของคลาสด้วยตัวคุณเองตามต้องการ การรักษาเอาต์พุตให้เล็กทำให้ประกอบได้
เครื่องมือที่เกี่ยวข้อง
ตารางอ้างอิง ASCII
ตาราง ASCII ครบตั้งแต่ 0 ถึง 127 พร้อมค่าเลขฐานสิบ ฐานสิบหก ฐานแปด ฐานสอง และรูปแบบการอ้างอิงอักขระแบบตัวเลขของ HTML รวม NUL, LF และ DEL
อ้างอิงตัวอักษร HTML
รายการที่สามารถค้นหาได้ขององค์ประกอบ HTML พร้อมรหัสชื่อและรหัสตัวเลข รวมถึงฟังก์ชันสำเนาด้วยคลิกเดียวสำหรับตัวอักษรพิเศษและสัญลักษณ์ต่างๆ
ตารางอ้างอิงแป้นพิมพ์ลัด
ค้นหาแป้นพิมพ์ลัดเริ่มต้นตามเอกสารของ VS Code, Chrome และ Bash ที่ใช้ GNU Readline บน macOS, Windows และ Linux
ตัวตรวจสอบอีเมล
ตรวจสอบที่อยู่อีเมล: ตรวจไวยากรณ์ RFC 5322 ค้นหา MX เรกคอร์ดแบบเรียลไทม์ พร้อมรายละเอียดส่วนท้องถิ่น โดเมน และความยาว ไม่มีการส่งอีเมลใด ๆ
เครื่องมือสร้าง EditorConfig
สร้างไฟล์ .editorconfig ด้วยกฎสไตล์และขนาดการเยื้อง การจบบรรทัด ชุดอักขระ และช่องว่างของคุณ เพื่อให้การจัดรูปแบบสอดคล้องกันในทุก IDE และโปรแกรมแก้ไข
ตัวลดรูปพีชคณิตบูลีน
ประเมินนิพจน์บูลีนสำหรับทุกชุดอินพุตและดูตารางค่าความจริงที่สมบูรณ์ รองรับตัวแปรสูงสุดห้าตัวและตัวดำเนินการ &, |, !, ^
เครื่องมือนี้มีให้บริการในภาษาอื่น
- JSON을 PHP 배열로 변환 [KO]
- JSON till PHP-array [SV]
- تحويل JSON إلى مصفوفة PHP [AR]
- JSON do tablicy PHP [PL]
- JSON zu PHP-Array [DE]
- JSON vers tableau PHP [FR]
- JSON ke Array PHP [ID]
- JSON naar PHP-array [NL]
- JSONからPHP配列へ [JA]
- JSON sang mảng PHP [VI]
- JSON para Array PHP [PT]
- JSON a Array de PHP [ES]
- JSON to PHP Array [EN]
- JSON in array PHP [IT]
- 从 JSON 到 PHP 数组 [ZH]
- JSON в массив PHP [RU]
- JSON'dan PHP dizisine [TR]