PHP ialah bahasa pengaturcaraan popular yang biasa digunakan untuk pembangunan web. Antaranya, bersiri dan tidak bersiri adalah dua fungsi yang sangat berguna yang boleh menukar objek PHP menjadi rentetan dan menyahsirikannya.
serialize ialah fungsi PHP yang digunakan untuk menukar objek PHP kepada rentetan yang boleh disimpan atau dihantar. Sintaks asas adalah seperti berikut:
$serialized_string = serialize($object);
Antaranya, $object ialah objek PHP yang akan disiri, dan $serialized_string ialah rentetan yang diperolehi selepas bersiri objek.
Sebagai contoh, katakan kita mempunyai objek PHP yang dipanggil $person yang sifatnya termasuk nama, umur dan jantina:
$person = new stdClass; $person->name = "Tom"; $person->age = 30; $person->gender = "male";
Kita boleh menggunakan bersiri untuk mensirikannya menjadi rentetan:
$serialized_person = serialize($person);
Anda boleh menggunakan pernyataan gema untuk mengeluarkan $serialized_person untuk melihat rentetan yang diperoleh selepas bersiri:
echo $serialized_person;
Hasil output ialah:
O:8:"stdClass":3:{s:4:"name";s:3:"Tom";s:3:"age";i:30;s:6:"gender";s:4:"male";}
Anda can see , objek $person berjaya ditukar menjadi rentetan panjang. Rentetan ini mengandungi semua sifat objek, serta jenis dan panjang setiap sifat.
Walau bagaimanapun, perlu diingatkan bahawa rentetan bersiri tidak boleh digunakan terus untuk paparan atau penyimpanan, kerana ia mengandungi banyak aksara khas dan sukar untuk dibaca dan diproses.
unserialize ialah fungsi songsang bagi serialize, digunakan untuk menukar rentetan bersiri kepada objek PHP. Sintaks asas adalah seperti berikut:
$object = unserialize($serialized_string);
Antaranya, $serialized_string ialah rentetan yang akan dinyahsiri, dan $object ialah objek PHP yang diperolehi selepas penyahserikatan.
Sebagai contoh, kita boleh menggunakan rentetan $serialized_person bersiri dalam contoh sebelumnya dan menyahsirikannya menjadi objek PHP baharu:
$unserialized_person = unserialize($serialized_person);
Kita boleh menggunakan var_dump($unserialized_person ) menyemak sama ada objek yang diperoleh selepas penyahserikatan adalah betul.
Hasil keluarannya ialah:
object(stdClass)#2 (3) { ["name"]=> string(3) "Tom" ["age"]=> int(30) ["gender"]=> string(4) "male" }
Seperti yang anda lihat, penyahserikatan berjaya dan objek stdClass baharu $unserialized_person diperolehi, yang atributnya betul-betul sama dengan $person.
Dalam contoh di atas, kami menunjukkan cara bersiri dan menyahsiri digunakan untuk objek stdClass. Walau bagaimanapun, mereka juga boleh mengendalikan tatasusunan dan objek PHP lain.
Sebagai contoh, katakan kita mempunyai tatasusunan dengan maklumat tentang berbilang pelajar:
$students = array( array("name" => "Tom", "age" => 20, "gender" => "male"), array("name" => "Alice", "age" => 22, "gender" => "female"), array("name" => "Bob", "age" => 21, "gender" => "male"), );
Kita boleh mensiri $pelajar kepada rentetan:
$serialized_students = serialize($students);
dan Menyahserikannya ke dalam tatasusunan baharu melalui fungsi nyahsiri:
$unserialized_students = unserialize($serialized_students);
Anda juga boleh menggunakan fungsi var_dump($unserialized_students)
untuk menyemak sama ada tatasusunan yang diperoleh selepas penyahserikatan adalah konsisten.
Apabila menggunakan serialize dan unserialize, anda perlu memberi perhatian kepada perkara berikut:
( 1) Hanya objek dengan sifat awam boleh disiri.
(2) Rentetan bersiri berkaitan dengan versi PHP dan sistem pengendalian. Versi PHP yang berbeza mungkin menghasilkan hasil bersiri yang berbeza.
(3) Hasil bersiri mengandungi semua sifat dan kaedah objek, jadi anda perlu memberi perhatian untuk melindungi harta dan kaedah persendirian.
mensiri dan menyahsiri ialah dua fungsi yang sangat penting dalam PHP, yang boleh menukar objek PHP kepada rentetan dan menyahsirinya berubah. Mereka boleh membantu kami menyimpan dan menghantar data dengan mudah dalam pembangunan web. Apabila menggunakannya, anda perlu memberi perhatian kepada sifat dan hak akses objek, serta perbezaan bersiri antara versi PHP yang berbeza.
Atas ialah kandungan terperinci Analisis ringkas tentang penggunaan serialize dan unserialize dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!