JSON'dan PHP dizisine
Bir JSON belgesini yapıştırın ve .php kaynak dosyası için biçimlendirilmiş bir PHP dizi literali elde edin: kısa dizi söz dizimi ([...]), doğru girinti, doğru şekilde tırnak içine alınmış dizeler, ilişkisel dizilere dönüşen iç içe nesneler ve dizinli kalan diziler. Testlere API fikstürleri gömmek veya yapılandırma dosyalarını doldurmak için kullanışlıdır.
JSON'ı PHP'ye nasıl dönüştürürsünüz
-
1
JSON'ı yapıştırın
Geçerli her türlü JSON: nesneler, diziler, derin iç içe yapılar.
-
2
Söz dizimini seçin
Kısa `[...]` (PHP 5.4+) veya uzun `array(...)` (artık nadiren gerekir).
-
3
Dize tırnak türünü seçin
Tek tırnak (değişken yerleştirme yok, apostroflar kaçışlanır) veya çift tırnak (`$` yerleştirmesine izin verir: veriler için genellikle istenmez).
-
4
Diziyi kopyalayın
Bunu `.php` dosyanıza yapıştırın, bir `return` ifadesine atayın veya `config([...])` içine sarın.
Örnek
Girdi:
{ "app": { "name": "Hyperion", "debug": true, "hosts": ["h1.example.com", "h2.example.com"] } }
Çıktı (kısa söz dizimi, tek tırnak):
[
'app' => [
'name' => 'Hyperion',
'debug' => true,
'hosts' => [
'h1.example.com',
'h2.example.com',
],
],
]
Tür eşlemesi
| JSON | PHP |
|---|---|
| dize | dize (tek tırnak) |
| tam sayı | int |
| sayı (ondalık) | float |
| mantıksal değer | true / false |
| null | null |
| dizi (JSON) | dizinli dizi |
| nesne (JSON) | ilişkisel dizi |
İlişkisel mi yoksa dizinli mi kullanmalı
PHP’de her iki davranışa da sahip tek bir dizi türü vardır. JSON ise nesne ile diziyi açıkça ayırır; dolayısıyla eşleme şöyledir:
{}→ ilişkisel dizi (['key' => value]).[]→ dizinli dizi ([value, value]).
Üretici bu ayrımı her zaman korur; ikisini PHP’de karıştırmak geçerlidir ama kafa karıştırıcıdır.
PHP’ye özgü tuzaklar
- Sayısal dize anahtarları. PHP, bir dizideki
"42"değerini tam sayı anahtarı42‘ye dönüştürür. JSON’unuz anahtar olarak sayısal dizeler kullanıyorsa ve bunları dize olarak korumanız gerekiyorsa,array_combineile gidiş-dönüş bunları korumaz. - Büyük tam sayılar. JSON, 32 bitlik derlemelerde
PHP_INT_MAXdeğerinden büyük tam sayılar tutabilir. Üretici, bu durum olası olduğunda uyarır. - UTF-8. PHP dizeleri bayt dizileridir; üretici UTF-8’i olduğu gibi verir.
.phpdosyanızın BOM içermeyen UTF-8 olarak kaydedildiğinden emin olun.
Kullanım alanları
- Yapılandırma dosyaları. Hem Laravel hem de Symfony PHP dizisi yapılandırması kullanır. Sağlayıcı tarzı bir JSON yapılandırmasını taşımak iyi çalışır.
- Test fikstürleri.
PHPUnitfikstürleri, çalışma zamanında yüklenen JSON dosyalarına kıyasla dizi olarak daha düzenlidir. - Seeder’lar. Laravel’deki veritabanı seeder’ları genellikle bir JSON dökümü olarak başlar ve PHP dizilerine dönüşür.
Sık yapılan hatalar
- PHP dizilerini tekrar JSON’a dönüştürmek.
json_encode, ilişkisel bir diziyi nesne, dizinli bir diziyi ise dizi olarak ele alır. Bunları karıştırırsanız (['key' => 'val', 0 => 'x']), çıktıda bir nesne elde edersiniz. JSON biçimindeki dizileri JSON biçiminde tutun. - Apostrof içeren çift tırnak. Tek tırnaklı PHP dizeleri
\'kaçışını gerektirir; çift tırnaklı dizeler\\"kaçışını gerektirir ve dikkatli olmazsanız değişkenler yanlışlıkla yerleştirilebilir. Veriler için tek tırnağa bağlı kalın. - Sondaki virgülleri unutmak. PHP, PHP 7.3’ten beri bunlara izin verir ve diff’leri daha temiz yapar. Üretici bunları varsayılan olarak ekler.
Sık Sorulan Sorular
Kısa söz dizimi ([...]) PHP 5.4’ten beri kullanılabilir ve tüm modern kod için deyimsel tercihtir. Uzun söz dizimi (array(...)) yalnızca PHP 5.3 veya daha eski sürümlerde çalışması gereken kod için gereklidir; yani eski sistemler için.
Evet. Laravel yapılandırma dosyaları, bir dosyadan döndürülen sıradan PHP dizileridir. Üreticinin çıktısını return ifadesinden sonra yapıştırın ve config/ dizinine kaydedin.
Tek tırnaklı PHP dizeleri değişkenleri veya kaçış dizilerini yerleştirmez (\' ve \\ hariç). Veri literalleri için bu daha hızlı ve güvenlidir. Çift tırnak yalnızca dizenin içinde \n, \t veya $variable istediğinizde önemlidir.
Hayır, bir dizi literali üretir. Gerektiğinde bunu kendiniz return, const veya bir sınıf özelliğiyle sarın. Çıktıyı küçük tutmak, onu birleştirilebilir kılar.
İlgili Araçlar
ASCII Tablosu Referansı
NUL, LF ve DEL dahil her kod için ondalık, onaltılık, sekizlik ve ikili değerlerle HTML sayısal karakter başvurusu gösterimini sunan tam ASCII tablosu.
HTML Karakter Referansı
HTML varlıklarının aranabilir listesi; adlandırılmış ve sayısal kodlarıyla birlikte özel karakter ve semboller için tek tıkla kopyalama.
Klavye kısayolları başvurusu
macOS, Windows ve Linux’ta VS Code, Chrome ve GNU Readline kullanan Bash için belgelenmiş varsayılan kısayolları arayın.
FPS Sayacı
requestAnimationFrame ile tarayıcı FPS değerini ölçün: yumuşatma, en düşük ve en yüksek kare hızı, uyarı eşiği ve isteğe bağlı grafik. Yerel çalışır, yükleme ve API yoktur.
EditorConfig Oluşturucu
Girinti stili ve boyutu, satır sonu, karakter kümesi ve boşluk kurallarınızla bir .editorconfig dosyası oluşturarak IDE ve editörler arasında tutarlı biçimlendirme sağlayın.
E-posta Doğrulayıcı
Bir e-posta adresini doğrulayın: RFC 5322 sözdizimi kontrolü, canlı MX kaydı sorgulama, ayrıca yerel kısım, alan adı ve uzunluk bilgileri. Hiçbir e-posta gönderilmez.
Araç diğer dillerde mevcuttur
- JSON para Array PHP [PT]
- JSON sang mảng PHP [VI]
- JSONからPHP配列へ [JA]
- JSON을 PHP 배열로 변환 [KO]
- JSON a Array de PHP [ES]
- تحويل JSON إلى مصفوفة PHP [AR]
- JSON naar PHP-array [NL]
- JSON till PHP-array [SV]
- JSON เป็น PHP Array [TH]
- JSON vers tableau PHP [FR]
- JSON ke Array PHP [ID]
- JSON zu PHP-Array [DE]
- JSON do tablicy PHP [PL]
- JSON in array PHP [IT]
- JSON в массив PHP [RU]
- 从 JSON 到 PHP 数组 [ZH]
- JSON to PHP Array [EN]