Rumah > pembangunan bahagian belakang > tutorial php > Gunakan fungsi PHP serialize() untuk menyerikan objek dan tatasusunan

Gunakan fungsi PHP serialize() untuk menyerikan objek dan tatasusunan

王林
Lepaskan: 2023-06-27 13:22:01
asal
1332 orang telah melayarinya

Dalam PHP, kadangkala anda perlu menukar objek atau tatasusunan kepada rentetan untuk penyimpanan atau penghantaran. Proses ini dipanggil serialisasi, yang menukar struktur data ke dalam urutan rentetan supaya data boleh dihantar dan disimpan dalam persekitaran yang berbeza. PHP menyediakan fungsi terbina dalam serialize() yang boleh melaksanakan serialization dengan cepat dan mudah.

1. Pensirian tatasusunan

Untuk tatasusunan, anda boleh menggunakan siri() untuk mensirikannya ke dalam rentetan. Berikut adalah contoh.

$arr = ['apple', 'banana', 'orange'];
$str = serialize($arr);
echo $str;
Salin selepas log masuk

Hasil keluaran ialah: a:3:{i:0;s:5:"epal";i:1;s:6:"pisang";i:2;s:6:"oren";}

Seperti yang anda lihat, hasil siri ialah rentetan yang mengandungi maklumat tatasusunan. Tatasusunan bersiri boleh dinyahsiri dan dipulihkan kepada bentuk tatasusunan asalnya melalui fungsi unserialize().

$arr_unserialize = unserialize($str);
print_r($arr_unserialize);
Salin selepas log masuk

Outputnya ialah:

Array
(
    [0] => apple
    [1] => banana
    [2] => orange
)
Salin selepas log masuk

Proses bersiri ini sangat berguna untuk situasi di mana anda perlu menyimpan tatasusunan ke dalam pangkalan data atau fail.

2. Pensirian objek

Dalam PHP, objek disiri dengan cara yang serupa dengan tatasusunan. Berikut adalah contoh.

class Book {
    public $title;
    public $author;
    function __construct($title, $author) {
        $this->title = $title;
        $this->author = $author;
    }
}

$book = new Book('PHP', 'Bob');
$str = serialize($book);
echo $str;
Salin selepas log masuk

Hasil output ialah: O:4:"Book":2:{s:5:"title";s:3:"PHP";s:6:"author";s:3:"Bob" ; }

Seperti yang anda lihat, hasil siri ialah rentetan yang mengandungi maklumat objek. Objek bersiri juga boleh dinyahsiri dan dipulihkan kepada objek asal melalui fungsi unserialize().

$book_unserialize = unserialize($str);
var_dump($book_unserialize);
Salin selepas log masuk

Hasil keluarannya ialah:

object(Book)#1 (2) {
  ["title"]=>
  string(3) "PHP"
  ["author"]=>
  string(3) "Bob"
}
Salin selepas log masuk

Anda boleh melihat bahawa penyahserikatan menghasilkan objek baharu dengan semua sifat dan kaedah objek asal.

3. Langkah berjaga-jaga

Apabila menggunakan fungsi bersiri() PHP, anda perlu memberi perhatian kepada perkara berikut.

  1. Rentetan bersiri tidak boleh dibaca atau diubah suai, dan hanya boleh dinyahsiri dan dipulihkan kepada struktur data asal.
  2. Proses pensirilan dan penyahsirian perlu menggunakan kaedah pengekodan yang sama dan pengekodan UTF-8 disyorkan.
  3. Rentetan hasil bersiri terlalu panjang dan tidak sesuai untuk penghantaran dalam parameter URL.
  4. Mekanisme bersiri tidak sesuai untuk menyulitkan maklumat sensitif.

IV. Kesimpulan

Menggunakan fungsi bersiri() PHP boleh menyerikan objek dan tatasusunan dengan mudah, menukar data ke dalam bentuk rentetan dan memudahkan penyimpanan dan penghantaran. Apabila menggunakan fungsi ini, anda perlu memberi perhatian kepada had dan isu keselamatan rentetan bersiri. Dalam aplikasi praktikal, adalah perlu untuk memilih penyelesaian bersiri yang sesuai berdasarkan keadaan tertentu untuk memastikan keselamatan dan kecekapan data.

Atas ialah kandungan terperinci Gunakan fungsi PHP serialize() untuk menyerikan objek dan tatasusunan. 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