Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk menukar tatasusunan objek menjadi tatasusunan dalam php
PHP ialah bahasa pengaturcaraan yang sangat popular yang menyokong pengaturcaraan berorientasikan objek (OOP) dan operasi tatasusunan. Dalam PHP, kadangkala kita perlu menukar tatasusunan objek kepada tatasusunan biasa. Artikel ini akan memperkenalkan cara menukar tatasusunan objek kepada tatasusunan dalam PHP.
Terdapat fungsi yang sangat mudah dalam PHP yang boleh menukar rentetan format JSON kepada tatasusunan PHP: json_decode.
Susun atur objek boleh dikodkan ke dalam rentetan berformat JSON. Oleh itu, kita boleh mula-mula mengekod tatasusunan objek ke dalam rentetan JSON dan kemudian menggunakan fungsi json_decode untuk menukarnya menjadi tatasusunan PHP. Berikut ialah contoh:
<?php class Person { public $name; public $age; public $gender; } // 创建对象数组 $persons = []; $person1 = new Person(); $person1->name = "张三"; $person1->age = 20; $person1->gender = "男"; $persons[] = $person1; $person2 = new Person(); $person2->name = "李四"; $person2->age = 22; $person2->gender = "男"; $persons[] = $person2; // 将对象数组编码成JSON字符串 $json_str = json_encode($persons); // 将JSON字符串解码成PHP数组 $person_arr = json_decode($json_str, true); print_r($person_arr); ?>
Ini akan mengeluarkan hasil berikut:
Array ( [0] => Array ( [name] => 张三 [age] => 20 [gender] => 男 ) [1] => Array ( [name] => 李四 [age] => 22 [gender] => 男 ) )
Cara lain untuk menukar tatasusunan objek Cara untuk menukar kepada tatasusunan adalah dengan melaksanakan antara muka Boleh Bersiri. Kaedah ini memerlukan kaedah tersuai dalam kelas untuk menukar tatasusunan objek kelas ini kepada rentetan boleh bersiri. Berikut ialah contoh:
<?php class Person implements Serializable { public $name; public $age; public $gender; // 实现Serializable接口的方法 public function serialize() { return serialize([$this->name, $this->age, $this->gender]); } // 实现Serializable接口的方法 public function unserialize($serialized) { [$this->name, $this->age, $this->gender] = unserialize($serialized); } } // 创建对象数组 $persons = []; $person1 = new Person(); $person1->name = "张三"; $person1->age = 20; $person1->gender = "男"; $persons[] = $person1; $person2 = new Person(); $person2->name = "李四"; $person2->age = 22; $person2->gender = "男"; $persons[] = $person2; // 将对象数组编码成可序列化的字符串 $serialized_str = serialize($persons); // 将序列化的字符串转换为PHP数组 $person_arr = unserialize($serialized_str); print_r($person_arr); ?>
Ini akan menghasilkan yang berikut:
Array ( [0] => Person Object ( [name] => 张三 [age] => 20 [gender] => 男 ) [1] => Person Object ( [name] => 李四 [age] => 22 [gender] => 男 ) )
Ringkasan
Artikel ini menerangkan dua kaedah untuk menukar tatasusunan objek kepada tatasusunan: Gunakan fungsi json_decode dan laksanakan antara muka Serializable. Pembangun boleh memilih kaedah pelaksanaan yang berbeza mengikut keperluan mereka sendiri. Ingat bahawa apabila menggunakan kaedah kedua, kelas objek perlu melaksanakan antara muka Serializable.
Atas ialah kandungan terperinci Bagaimana untuk menukar tatasusunan objek menjadi tatasusunan dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!