Rumah pembangunan bahagian belakang masalah PHP Bagaimana untuk menukar objek php ke dalam array

Bagaimana untuk menukar objek php ke dalam array

May 11, 2023 am 09:35 AM

Dalam pengaturcaraan PHP, objek dan tatasusunan ialah dua jenis data biasa. Kadangkala, kita perlu menukar objek PHP kepada tatasusunan untuk pemprosesan dan pengendalian yang mudah. Dalam artikel ini, kami akan memperkenalkan cara menukar objek PHP kepada tatasusunan.

Pertama, kita perlu memahami struktur objek dalam PHP. Objek PHP termasuk sifat dan kaedah. Harta boleh awam, peribadi atau dilindungi, manakala kaedah boleh awam, peribadi atau dilindungi. Kebenaran akses untuk sifat dan kaedah menentukan sama ada ia boleh dipanggil oleh kod luaran. Dalam pengaturcaraan sebenar, kita biasanya mentakrifkan pembina dalam kelas untuk memulakan sifat objek.

Sebelum menukar objek PHP kepada tatasusunan, kita perlu menentukan sama ada objek yang hendak ditukar mempunyai senarai harta awam. Jika tidak, kita boleh mempertimbangkan untuk menyimpan sifat objek dan nilai harta dalam tatasusunan bersekutu. Anda boleh mendapatkan senarai harta awam objek PHP dengan mudah menggunakan API Refleksi PHP. Semua sifat dalam kelas boleh diperoleh dengan memanggil kaedah getProperties() dalam kelas ReflectionClass dan mengembalikan tatasusunan objek ReflectionProperty. Objek ReflectionProperty menyediakan fungsi seperti akses kepada nama harta, nilai harta, dan kebenaran akses untuk mengakses sifat. Berikut ialah kod sampel:

class MyClass {
    public $name;
    protected $age;
    private $gender;

    public function __construct($name, $age, $gender) {
        $this->name = $name;
        $this->age = $age;
        $this->gender = $gender;
    }
}

$obj = new MyClass('Tom', 22, 'Male');
$reflection = new ReflectionClass($obj);
$properties = $reflection->getProperties(ReflectionProperty::IS_PUBLIC);
$arr = array();
foreach ($properties as $prop) {
    $prop_name = $prop->getName();
    $prop_value = $prop->getValue($obj);
    $arr[$prop_name] = $prop_value;
}

print_r($arr);
Salin selepas log masuk

Output adalah seperti berikut:

Array
(
    [name] => Tom
)
Salin selepas log masuk

Dalam contoh ini, kami mentakrifkan kelas MyClass dan mencipta contoh $obj. Dapatkan senarai harta awam objek $obj melalui kelas ReflectionClass dan simpan hasilnya dalam tatasusunan.

Seterusnya, kita boleh mempertimbangkan untuk menukar keseluruhan objek PHP menjadi tatasusunan bersekutu. Di sini kita boleh mencapainya dengan bantuan kaedah ajaib PHP __toArray(). Kaedah __toArray() boleh mengembalikan semua atribut dan nilai atribut kelas dalam bentuk tatasusunan bersekutu. Kita boleh mentakrifkan kaedah ajaib ini dalam kelas supaya ia mengembalikan tatasusunan bersekutu yang mengandungi semua sifat dan nilai harta. Berikut ialah kod sampel:

class MyClass {
    public $name;
    protected $age;
    private $gender;

    public function __construct($name, $age, $gender) {
        $this->name = $name;
        $this->age = $age;
        $this->gender = $gender;
    }

    public function __toArray() {
        return get_object_vars($this);
    }
}

$obj = new MyClass('Tom', 22, 'Male');
$arr = $obj->__toArray();
print_r($arr);
Salin selepas log masuk

Keluarannya adalah seperti berikut:

Array
(
    [name] => Tom
    [age:protected] => 22
    [gender:MyClass:private] => Male
)
Salin selepas log masuk

Dalam contoh ini, kami mentakrifkan kaedah __toArray() dalam kelas MyClass untuk menambah semua atribut dan sifat kelas Nilai dikembalikan dalam tatasusunan. Memanggil kaedah $obj->__toArray() akan mengembalikan tatasusunan yang mengandungi semua atribut dan nilai atribut.

Selain kaedah di atas, kami juga boleh menggunakan fungsi PHP sendiri untuk menukar objek PHP kepada tatasusunan. Fungsi yang paling biasa digunakan ialah get_object_vars() dan json_decode().

Fungsi get_object_vars() boleh mendapatkan semua atribut objek dan mengembalikan tatasusunan bersekutu yang mengandungi nama atribut dan nilai atribut.

Fungsi json_decode() boleh menukar rentetan format JSON kepada tatasusunan PHP. Selepas menukar objek kepada rentetan berformat JSON, kita boleh menggunakan fungsi json_decode() untuk menukar rentetan itu kepada tatasusunan.

Berikut ialah contoh kod yang menunjukkan cara menggunakan dua fungsi ini untuk menukar objek PHP kepada tatasusunan:

class MyClass {
    public $name;
    protected $age;
    private $gender;

    public function __construct($name, $age, $gender) {
        $this->name = $name;
        $this->age = $age;
        $this->gender = $gender;
    }
}

$obj = new MyClass('Tom', 22, 'Male');

// 将对象转化为数组
$arr1 = get_object_vars($obj);
$arr2 = json_decode(json_encode($obj), true);

print_r($arr1);
print_r($arr2);
Salin selepas log masuk

Outputnya adalah seperti berikut:

Array
(
    [name] => Tom
    [age] => 22
    [gender] => Male
)
Array
(
    [name] => Tom
    [age] => 22
    [gender] => Male
)
Salin selepas log masuk

Dalam ini contoh, Kami menggunakan fungsi get_object_vars() dan fungsi json_decode() untuk menukar objek PHP kepada tatasusunan dan mencetak hasilnya.

Ringkasnya, kita boleh menggunakan Reflection API, kaedah ajaib, fungsi get_object_vars() dan fungsi json_decode() untuk menukar objek PHP kepada tatasusunan. Walaupun kaedah ini berbeza, matlamat utama adalah untuk menukar objek kepada tatasusunan supaya kita boleh memproses dan mengendalikannya.

Atas ialah kandungan terperinci Bagaimana untuk menukar objek php ke dalam array. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Akan R.E.P.O. Ada Crossplay?
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

PHP 8 JIT (Just-in-Time) Penyusunan: Bagaimana ia meningkatkan prestasi. PHP 8 JIT (Just-in-Time) Penyusunan: Bagaimana ia meningkatkan prestasi. Mar 25, 2025 am 10:37 AM

Kompilasi JIT Php 8 meningkatkan prestasi dengan menyusun kod yang sering dilaksanakan ke dalam kod mesin, memberi manfaat kepada aplikasi dengan pengiraan berat dan mengurangkan masa pelaksanaan.

OWASP Top 10 PHP: Huraikan dan mengurangkan kelemahan umum. OWASP Top 10 PHP: Huraikan dan mengurangkan kelemahan umum. Mar 26, 2025 pm 04:13 PM

Artikel ini membincangkan kelemahan OWASP 10 dalam strategi PHP dan mitigasi. Isu -isu utama termasuk suntikan, pengesahan yang rosak, dan XSS, dengan alat yang disyorkan untuk memantau dan mendapatkan aplikasi PHP.

Penyulitan PHP: Penyulitan simetri vs asimetrik. Penyulitan PHP: Penyulitan simetri vs asimetrik. Mar 25, 2025 pm 03:12 PM

Artikel ini membincangkan penyulitan simetri dan asimetrik dalam PHP, membandingkan kesesuaian, prestasi, dan perbezaan keselamatan mereka. Penyulitan simetri lebih cepat dan sesuai untuk data pukal, manakala asimetrik digunakan untuk pertukaran utama yang selamat.

PHP Secure File Muat naik: Mencegah kelemahan berkaitan fail. PHP Secure File Muat naik: Mencegah kelemahan berkaitan fail. Mar 26, 2025 pm 04:18 PM

Artikel ini membincangkan mendapatkan muat naik fail PHP untuk mengelakkan kelemahan seperti suntikan kod. Ia memberi tumpuan kepada pengesahan jenis fail, penyimpanan selamat, dan pengendalian ralat untuk meningkatkan keselamatan aplikasi.

Pengesahan PHP & amp; Kebenaran: Pelaksanaan selamat. Pengesahan PHP & amp; Kebenaran: Pelaksanaan selamat. Mar 25, 2025 pm 03:06 PM

Artikel ini membincangkan pelaksanaan pengesahan dan kebenaran yang mantap dalam PHP untuk mencegah akses yang tidak dibenarkan, memperincikan amalan terbaik dan mengesyorkan alat peningkatan keselamatan.

PHP CSRF Perlindungan: Bagaimana untuk mencegah serangan CSRF. PHP CSRF Perlindungan: Bagaimana untuk mencegah serangan CSRF. Mar 25, 2025 pm 03:05 PM

Artikel ini membincangkan strategi untuk mencegah serangan CSRF di PHP, termasuk menggunakan token CSRF, kuki tapak yang sama, dan pengurusan sesi yang betul.

Bagaimana anda mengambil data dari pangkalan data menggunakan PHP? Bagaimana anda mengambil data dari pangkalan data menggunakan PHP? Mar 20, 2025 pm 04:57 PM

Artikel membincangkan mendapatkan data dari pangkalan data menggunakan PHP, meliputi langkah, langkah keselamatan, teknik pengoptimuman, dan kesilapan umum dengan penyelesaian.

Apakah tujuan penyataan yang disediakan dalam PHP? Apakah tujuan penyataan yang disediakan dalam PHP? Mar 20, 2025 pm 04:47 PM

Kenyataan yang disediakan dalam PHP meningkatkan keselamatan pangkalan data dan kecekapan dengan mencegah suntikan SQL dan meningkatkan prestasi pertanyaan melalui kompilasi dan penggunaan semula.

See all articles