Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menukar objek kepada array dalam php

Bagaimana untuk menukar objek kepada array dalam php

PHPz
PHPzasal
2023-04-24 09:07:13688semak imbas

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!

Kenyataan:
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