Dalam pembangunan PHP, Object dan Array selalunya digunakan sebagai jenis data Mereka masing-masing mempunyai kelebihan dan kekurangan mereka sendiri, tetapi dalam beberapa senario mereka perlu ditukar kepada satu sama lain Dalam artikel ini, kami akan memperkenalkan cara menukarnya antara satu sama lain. Objek ditukar kepada Array.
Dalam PHP, anda boleh menggunakan penukaran jenis paksa untuk menukar jenis Objek kepada jenis Array Pelaksanaan khusus adalah seperti berikut:
function objectToArray($obj){ $arr = is_object($obj) ? get_object_vars($obj) : $obj; if(is_array($arr)){ return array_map(__FUNCTION__, $arr); }else{ return $arr; } }
Dalam kod di atas, mula-mula gunakan is_object. () fungsi untuk menentukan yang diluluskan Sama ada parameter input adalah jenis Objek, jika ya, gunakan fungsi get_object_vars() untuk mendapatkan perwakilan tatasusunan bagi atribut objek dan nilai atribut jika ia bukan jenis Objek, ia akan dikembalikan secara langsung. Seterusnya, gunakan fungsi array_map() untuk memanggil fungsi secara rekursif, menukar setiap elemen tatasusunan berbilang dimensi kepada jenis tatasusunan, dan akhirnya mengembalikan tatasusunan yang ditukar.
Sebagai contoh, kami mentakrifkan kelas Orang:
class Person{ public $name; public $age; function __construct($name, $age){ $this->name = $name; $this->age = $age; } }
Segera objek Orang:
$person = new Person('Tom', 18);
Kemudian gunakan kaedah di atas untuk menukarnya kepada tatasusunan:
$array = objectToArray($person); print_r($array);
Hasil keluaran adalah seperti berikut:
Array ( [name] => Tom [age] => 18 )
Seperti yang dapat dilihat daripada kod di atas, objek Person ditukar kepada tatasusunan dengan menggunakan fungsi objectToArray(), dan nilai setiap atribut berjaya diperolehi. Dengan cara ini, tatasusunan dalam contoh ini boleh digunakan secara langsung dalam beberapa senario di mana tatasusunan digunakan.
Dalam pembangunan harian, perlu diperhatikan bahawa terdapat beberapa perbezaan antara tatasusunan dan objek Sebagai contoh, tatasusunan boleh menggunakan fungsi dan sintaks yang berkaitan dengan tatasusunan, manakala objek boleh menggunakan kaedah dan sifat kelas. Oleh itu, semasa proses penukaran, adalah perlu untuk bertindak balas terhadap senario penggunaan dan menguasainya secara fleksibel.
Atas ialah kandungan terperinci Bagaimana untuk menukar objek ke dalam array dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!