Array atau objek PHP atau struktur data kompleks lainnya tidak dapat dipindahkan atau disimpan atau digunakan di luar skrip PHP yang sedang berjalan . Jika Anda ingin mempertahankan struktur data yang kompleks di luar satu skrip yang dijalankan, Anda perlu membuat serialnya . Itu hanya berarti meletakkan struktur ke dalam "penyebut umum yang lebih rendah" yang dapat ditangani oleh hal-hal selain PHP, seperti database, file teks, soket. Fungsi PHP standar serializehanyalah format untuk mengekspresikan hal seperti itu, ia membuat struktur data menjadi representasi string yang unik untuk PHP dan dapat dibalik menjadi objek PHP menggunakan unserialize. Ada banyak format lain, seperti JSON atau XML.
Ambil contoh masalah umum ini:
Bagaimana cara meneruskan array PHP ke Javascript?
PHP dan Javascript hanya dapat berkomunikasi melalui string. Anda dapat meneruskan string "foo"dengan sangat mudah ke Javascript. Anda dapat memberikan nomor tersebut 1dengan sangat mudah ke Javascript. Anda dapat meneruskan nilai boolean truedan falsedengan mudah ke Javascript. Tapi bagaimana Anda meneruskan array ini ke Javascript?
Array ( [1] => elem 1 [2] => elem 2 [3] => elem 3 )
Jawabannya adalah serialisasi . Dalam kasus PHP / Javascript, JSON sebenarnya adalah format serialisasi yang lebih baik:
{ 1 : 'elem 1', 2 : 'elem 2', 3 : 'elem 3' }
Javascript dapat dengan mudah membalikkan ini menjadi array Javascript yang sebenarnya.
Ini sama validnya dengan representasi dari struktur data yang sama:
a:3:{i:1;s:6:"elem 1";i:2;s:6:"elem 2";i:3;s:7:" elem 3";}
Tetapi cukup banyak hanya PHP yang menggunakannya, ada sedikit dukungan untuk format ini di tempat lain.
Ini sangat umum dan juga didukung dengan baik:
<array>
<element key='1'>elem 1</element>
<element key='2'>elem 2</element>
<element key='3'>elem 3</element>
</array>
Ada banyak situasi di mana Anda perlu meneruskan struktur data kompleks sebagai string. Serialisasi, merepresentasikan struktur data arbitrer sebagai string, memecahkan cara melakukannya.