Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menukar objek menjadi objek tatasusunan dalam php

Bagaimana untuk menukar objek menjadi objek tatasusunan dalam php

PHPz
PHPzasal
2023-04-19 09:20:28668semak imbas

Dalam PHP, kita selalunya perlu menukar antara objek dan tatasusunan. Dalam sesetengah kes, kita mungkin perlu menukar objek kepada objek tatasusunan supaya kita boleh mengendalikan sifat dan kaedah objek ini dengan lebih mudah. Dalam artikel ini, kami akan menerangkan cara menukar objek kepada objek tatasusunan menggunakan beberapa fungsi terbina dalam dalam PHP.

1. Gunakan typecast untuk menukar objek

Typecast (penukaran jenis) dalam PHP ialah kaedah menukar satu jenis data kepada jenis data yang lain. Oleh itu, kita boleh menggunakan taip untuk menukar objek kepada objek tatasusunan. Dalam contoh berikut, kami mentakrifkan objek dengan sifat nama, umur dan jantina, dan kemudian menukar objek itu kepada objek tatasusunan:

class Person {
    public $name;
    public $age;
    public $gender;
}

$person = new Person();
$person->name = '张三';
$person->age = 18;
$person->gender = '男';

$array = (array) $person;
print_r($array);

Hasil keluaran:

Array
(
    [name] => 张三
    [age] => 18
    [gender] => 男
)

Dalam contoh di atas, kami menghantar objek $orang ke objek tatasusunan $array menggunakan (array). Dengan mencetak objek tatasusunan, kita dapat melihat bahawa $array berjaya mengandungi atribut dan nilai $person.

Sila ambil perhatian bahawa dalam objek tatasusunan yang ditukar daripada objek, nama atribut ialah nama atribut objek, dan nilai atribut ialah nilai atribut objek. Walau bagaimanapun, kaedah ini tidak boleh menukar sifat peribadi objek kepada sifat objek tatasusunan. Jika anda perlu menukar harta peribadi kepada harta objek tatasusunan, gunakan kaedah penukaran yang lain.

2. Gunakan fungsi get_object_vars()

Fungsi get_object_vars() dalam PHP boleh digunakan untuk mendapatkan semua atribut dan nilai atribut objek, dan mengembalikan objek yang terdiri nama atribut dan nilai atribut. Kita boleh mewakili tatasusunan kembali fungsi ini sebagai objek tatasusunan objek. Berikut ialah contoh menggunakan fungsi get_object_vars() untuk menukar objek kepada objek tatasusunan:

class Person {
    public $name;
    public $age;
    private $gender;
}

$person = new Person();
$person->name = '张三';
$person->age = 18;
$person->gender = '男';

$array = get_object_vars($person);
print_r($array);

Hasil keluaran:

Array
(
    [name] => 张三
    [age] => 18
)

Dalam contoh di atas, kami mentakrifkan objek $orang, yang mempunyai harta awam $nama dan $umur, dan harta persendirian $jantina. Kami kemudian menukar objek ini menjadi objek tatasusunan $array menggunakan fungsi get_object_vars(). Sila ambil perhatian bahawa fungsi get_object_vars() hanya mengembalikan sifat awam dan nilai objek, tidak termasuk harta persendirian $gender.

3. Gunakan fungsi json_decode()

Fungsi json_decode() dalam PHP boleh digunakan untuk menukar rentetan format JSON kepada pembolehubah atau objek PHP. Apabila menukar objek, fungsi json_decode() akan mengembalikan objek stdClass, yang boleh ditukar kepada objek tatasusunan menggunakan typecast. Berikut ialah contoh menggunakan fungsi json_decode() untuk menukar objek kepada objek tatasusunan:

class Person {
    public $name;
    public $age;
    private $gender;
}

$person = new Person();
$person->name = '张三';
$person->age = 18;
$person->gender = '男';

$jsonStr = json_encode($person);
$array = (array) json_decode($jsonStr);
print_r($array);

Hasil keluaran:

Array
(
    [name] => 张三
    [age] => 18
    [gender] => 男
)

Dalam contoh di atas, kami menukar objek $orang dahulu Tukarkannya kepada rentetan JSON $jsonStr melalui fungsi json_encode(), dan kemudian tukarkannya menjadi objek stdClass melalui fungsi json_decode(). Akhir sekali, kami menggunakan typecast untuk menukar objek stdClass kepada objek tatasusunan $array. Sila ambil perhatian bahawa menggunakan kaedah ini, sifat peribadi objek juga boleh ditukar kepada sifat objek tatasusunan.

Kesimpulan

Beberapa kaedah disediakan dalam PHP untuk menukar objek kepada objek tatasusunan. Kita boleh memilih kaedah yang sesuai mengikut keperluan sebenar. Apabila menggunakan kaedah taip, objek mesti dihantar ke objek tatasusunan, tetapi sifat peribadi tidak boleh dihantar ke sifat objek tatasusunan. Apabila menggunakan fungsi get_object_vars(), hanya sifat awam dan nilai objek boleh diperolehi. Apabila menggunakan fungsi json_decode(), anda boleh menukar kedua-dua sifat awam dan peribadi sesuatu objek kepada sifat objek tatasusunan.

Atas ialah kandungan terperinci Bagaimana untuk menukar objek menjadi objek tatasusunan 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