Rumah pembangunan bahagian belakang masalah PHP Analisis ringkas tentang penggunaan serialize dan unserialize dalam php

Analisis ringkas tentang penggunaan serialize dan unserialize dalam php

Mar 24, 2023 pm 02:57 PM
php serialize unserialize

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!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Konfigurasi Projek CakePHP Konfigurasi Projek CakePHP Sep 10, 2024 pm 05:25 PM

Dalam bab ini, kita akan memahami Pembolehubah Persekitaran, Konfigurasi Umum, Konfigurasi Pangkalan Data dan Konfigurasi E-mel dalam CakePHP.

Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

Tarikh dan Masa CakePHP Tarikh dan Masa CakePHP Sep 10, 2024 pm 05:27 PM

Untuk bekerja dengan tarikh dan masa dalam cakephp4, kami akan menggunakan kelas FrozenTime yang tersedia.

Muat naik Fail CakePHP Muat naik Fail CakePHP Sep 10, 2024 pm 05:27 PM

Untuk mengusahakan muat naik fail, kami akan menggunakan pembantu borang. Di sini, adalah contoh untuk muat naik fail.

Bincangkan CakePHP Bincangkan CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP ialah rangka kerja sumber terbuka untuk PHP. Ia bertujuan untuk menjadikan pembangunan, penggunaan dan penyelenggaraan aplikasi lebih mudah. CakePHP adalah berdasarkan seni bina seperti MVC yang berkuasa dan mudah difahami. Model, Pandangan dan Pengawal gu

Penghalaan CakePHP Penghalaan CakePHP Sep 10, 2024 pm 05:25 PM

Dalam bab ini, kita akan mempelajari topik berikut yang berkaitan dengan penghalaan ?

CakePHP Bekerja dengan Pangkalan Data CakePHP Bekerja dengan Pangkalan Data Sep 10, 2024 pm 05:25 PM

Bekerja dengan pangkalan data dalam CakePHP adalah sangat mudah. Kami akan memahami operasi CRUD (Buat, Baca, Kemas Kini, Padam) dalam bab ini.

Pengesah Mencipta CakePHP Pengesah Mencipta CakePHP Sep 10, 2024 pm 05:26 PM

Pengesah boleh dibuat dengan menambah dua baris berikut dalam pengawal.

See all articles