Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk menukar objek kepada array dalam php
Dalam pengaturcaraan PHP, kami biasanya menggunakan objek untuk menyimpan dan memproses data. Walau bagaimanapun, dalam beberapa kes, kita perlu menukar objek kepada tatasusunan untuk diproses.
Dalam PHP, anda boleh menggunakan fungsi get_object_vars()
untuk menukar objek kepada tatasusunan. Fungsi ini mengambil satu parameter, objek untuk ditukar kepada tatasusunan.
Berikut ialah contoh:
class Person { public $name = 'Tom'; public $age = 25; private $email = 'tom@email.com'; } $person = new Person(); $personArray = get_object_vars($person); print_r($personArray);
Dalam contoh ini, kami mentakrifkan kelas bernama Person
dan mentakrifkan tiga sifat di dalamnya: awam $name
dan $age
, sebagai serta atribut $email
peribadi. Kami kemudian menjadikan kelas Person
dan menyerahkannya kepada fungsi get_object_vars()
untuk menukarnya kepada tatasusunan. Akhirnya, kami mencetak tatasusunan personArray
.
Hasil keluaran adalah seperti berikut:
Array ( [name] => Tom [age] => 25 )
Dapat dilihat bahawa hanya atribut awam ditukar kepada tatasusunan, dan atribut peribadi $email
tidak termasuk dalam tatasusunan.
Jika kita ingin memasukkan hartanah persendirian, kita boleh menggunakan kelas ReflectionClass
. Kelas ini membolehkan kami mengakses dan mengubah suai sifat peribadi dan kaedah kelas.
Berikut ialah contoh:
class Person { public $name = 'Tom'; public $age = 25; private $email = 'tom@email.com'; } $person = new Person(); $reflector = new ReflectionClass($person); $properties = $reflector->getProperties(ReflectionProperty::IS_PUBLIC | ReflectionProperty::IS_PRIVATE); $personArray = array(); foreach ($properties as $property) { $property->setAccessible(true); $personArray[$property->getName()] = $property->getValue($person); } print_r($personArray);
Dalam contoh ini, kami menggunakan kelas ReflectionClass untuk mendapatkan maklumat kelas. Kami menghantar contoh kelas Person
kepada pembina ReflectionClass
dan kemudian menggunakan kaedah getProperties()
untuk mendapatkan sifat kelas, menggunakan parameter ReflectionProperty::IS_PUBLIC
dan ReflectionProperty::IS_PRIVATE
untuk memasukkan semua sifat awam dan peribadi. Seterusnya, kami menggunakan kaedah setAccessible()
untuk menjadikan setiap harta persendirian boleh diakses dan kaedah getValue()
untuk mendapatkan nilai setiap harta benda. Akhir sekali, kami menyimpan sifat dan nilai ini dalam tatasusunan $personArray
dan mencetak output.
Hasil keluaran adalah seperti berikut:
Array ( [name] => Tom [age] => 25 [email] => tom@email.com )
Dapat dilihat bahawa semua atribut termasuk atribut peribadi $email
ditukar kepada tatasusunan.
Ringkasan:
Gunakan fungsi get_object_vars()
untuk menukar objek kepada tatasusunan, tetapi hanya dengan sifat awam. Jika anda perlu memasukkan sifat peribadi, anda boleh menggunakan kelas ReflectionClass, gunakan kaedah setAccessible()
untuk menetapkan sifat persendirian kepada keadaan yang boleh diakses dan kemudian gunakan kaedah getValue()
untuk mendapatkan nilai harta persendirian.
Atas ialah kandungan terperinci Bagaimana untuk menukar objek kepada array dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!