Analisis ringkas tentang penggunaan serialize dan unserialize dalam php

PHPz
Lepaskan: 2023-03-24 15:28:01
asal
1472 orang telah melayarinya

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.

  1. Penggunaan serialize

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);
Salin selepas log masuk

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";
Salin selepas log masuk

Kita boleh menggunakan bersiri untuk mensirikannya menjadi rentetan:

$serialized_person = serialize($person);
Salin selepas log masuk

Anda boleh menggunakan pernyataan gema untuk mengeluarkan $serialized_person untuk melihat rentetan yang diperoleh selepas bersiri:

echo $serialized_person;
Salin selepas log masuk

Hasil output ialah:

O:8:"stdClass":3:{s:4:"name";s:3:"Tom";s:3:"age";i:30;s:6:"gender";s:4:"male";}
Salin selepas log masuk

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.

  1. Penggunaan unserialize

unserialize ialah fungsi songsang bagi serialize, digunakan untuk menukar rentetan bersiri kepada objek PHP. Sintaks asas adalah seperti berikut:

$object = unserialize($serialized_string);
Salin selepas log masuk

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);
Salin selepas log masuk

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"
}
Salin selepas log masuk

Seperti yang anda lihat, penyahserikatan berjaya dan objek stdClass baharu $unserialized_person diperolehi, yang atributnya betul-betul sama dengan $person.

  1. Mensiri tatasusunan dan objek

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"),
);
Salin selepas log masuk

Kita boleh mensiri $pelajar kepada rentetan:

$serialized_students = serialize($students);
Salin selepas log masuk

dan Menyahserikannya ke dalam tatasusunan baharu melalui fungsi nyahsiri:

$unserialized_students = unserialize($serialized_students);
Salin selepas log masuk

Anda juga boleh menggunakan fungsi var_dump($unserialized_students) untuk menyemak sama ada tatasusunan yang diperoleh selepas penyahserikatan adalah konsisten.

  1. Nota semasa bersiri

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.

  1. Ringkasan

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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan