PHP Serileştirme Örneği | Serialize() fonksiyonu kullanımını bu yazıda örnekle ele alacağız. PHP’deki serialize() işlevi, bir değerin saklanabilir bir temsiline dönüştürür. Serileştirme verileri, bitler dizisi anlamına gelir; böylece dosyada, bir bellek arabelleğinde saklanabilir veya ağ bağlantısı bağlantısı üzerinden iletilebilir. PHP değerlerini türlerini ve yapılarını kaybetmeden saklamak veya iletmek için kullanışlıdır.
serialize() yazım kuralı:
1 2 3 | serialize(deger) |
Serileştirilecek değer olan deger parametresi gereklidir.
Aşağıdaki örneği görelim.
1 2 3 4 5 6 7 8 9 | <?php $liste = ['Hayri', 'Ahmet Can', 'Nihat Genç', 'Nebahat']; $serializeText = serialize($liste); echo $serializeText."\n"; //a:4:{i:0;s:5:"Hayri";i:1;s:9:"Ahmet Can";i:2;s:11:"Nihat Genç";i:3;s:7:"Nebahat";} |
Gördüğünüz gibi serileştirme metni yukarıdaki görüntüye benziyor. Bu metin şimdi veritabanında saklanabilir ve verileri ön uçta göstermemiz gerektiğinde, deserialize() kullanarak orijinal formata geri dönebiliriz.
Burada, birçok yerleşik PHP nesnesinin serileştirilemediğine dikkat edilmesi gereken bir şey var.
serialize() nesneleri seri hale getirdiğinde, maksimum uyumluluk için ad alanı sınıflarının sınıf adına satır başındaki ters eğik çizgi dahil edilmez.
Kayan nokta serileştirme
Kayan nokta sayılarının seri hale getirilmesi, garip bir hassas ofset hatalarına neden olur.
1 2 3 4 5 6 7 8 9 10 11 12 13 | <?php echo round(98.19210000000000002, 2)."<br>"; echo serialize(round(98.19210000000000002, 2))."<br>"; echo serialize(98.1921)."<br>"; /* 98.19 d:98.19; d:98.1921; */ |
serialize() her zaman kullanılmaz
Verileri seri hale getirmeyin ve her zaman veritabanınıza yerleştirin. Başka seçenek kalmadıysa kullanın. Bazen karmaşık olabilir. Verileri depolamak için seri hale getirilebilir, ancak ilişkisel veritabanındaki noktayı ve veritabanı motorunuzda bulunan SQL veri türlerini bu noktadan kaçırırsınız. Bunu yapmak, veritabanınızdaki verileri taşınabilir yapmaz, okunmasını zorlaştırır ve sorguların karmaşıklaşmasına neden olabilir.
Uygulamanızın diğer diller tarafından kullanılmasını istiyorsanız, Python veya Java’yı uygulamanızın Python veya Java’yı kullanmanın anlamlı olduğu bir kısmı için kullanmak istediğinizi söyleyelim gibi, serileştirme acı verici olacaktır. Eklenecek verileri işlemek için üçüncü taraf aracı aracını kullanmadan her zaman tüm verileri sorgulayabilmeli ve bir veritabanındaki verileri değiştirebilmelisiniz.
Bu nedenle, her zaman, serialize() çok iyi bir seçenek olmayabilir. Bir modül söylemeye izin vermek için kullanılabilir, ancak verileri her seferinde serileştirmek istemezsiniz.
Yorum Yap