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

Bagaimana untuk menukar objek ke dalam array dalam php

Apr 23, 2023 pm 07:29 PM

Dalam pembangunan PHP, kita selalunya perlu menukar antara objek dan tatasusunan Senario aplikasi biasa memerlukan penukaran objek kepada tatasusunan. PHP menyediakan banyak kaedah untuk melengkapkan proses penukaran ini, kaedah yang paling biasa digunakan ialah menukar objek kepada tatasusunan melalui kastor.

Dalam PHP, apabila kita menukar objek kepada tatasusunan, nama atribut objek digunakan secara automatik sebagai nama kunci dan nilai atribut disimpan dalam tatasusunan sebagai nilai kunci. Pada masa yang sama, PHP juga boleh secara selektif menukar sifat peribadi, dilindungi dan awam sesuatu objek.

Mari kita pelajari cara menukar objek kepada tatasusunan melalui contoh:

class BlogPost {
    private $title;
    private $content;
    protected $publishedAt;

    public function __construct($title, $content) {
        $this->title = $title;
        $this->content = $content;
        $this->publishedAt = date('Y-m-d H:i:s');
    }
}

$post = new BlogPost('PHP Object Convert Array', 'PHP 中对象转换数组的实现');
$array_post = (array) $post; // 将对象转换为数组
print_r($array_post);
Salin selepas log masuk

Dalam contoh di atas, kami menentukan kelas BlogPost, yang mempunyai tiga atribut: title, content dan publishedAt. Antaranya, title dan content ialah atribut peribadi dan publishedAt ialah atribut yang dilindungi. Dalam pembina kelas, kami menetapkan atribut $title dan $content dan menetapkan atribut $publishedAt kepada masa semasa secara lalai.

Seterusnya, kami membuat instantiate kelas BlogPost dan menghantarnya ke tatasusunan $array_post. Akhir sekali, kami menggunakan fungsi print_r untuk mencetak kandungan tatasusunan $array_post Anda boleh melihat output seperti berikut:

Array
(
    [BlogPosttitle] => PHP Object Convert Array
    [BlogPostcontent] => PHP 中对象转换数组的实现
    [*publishedAt] => 2021-09-14 15:10:34
)
Salin selepas log masuk

Anda boleh menemuinya apabila kami menggunakan (array) untuk penukaran jenis. , nama atribut objek Nama kelas akan ditambah sebagai awalan. Ini kerana dalam PHP, nama atribut yang sama hanya boleh muncul sekali Untuk mengelakkan konflik nama atribut, PHP secara automatik menambah nama kelas sebagai awalan. Pada masa yang sama, kita juga boleh mengakses sifat objek melalui tatasusunan Contohnya, echo $array_post['BlogPosttitle']; boleh mengeluarkan PHP Object Convert Array.

Perlu diingat bahawa apabila terdapat sifat persendirian dan sifat yang dilindungi dalam objek, ia tidak boleh diakses secara lalai selepas ditukar kepada tatasusunan, tetapi jika kita ingin menambahkannya pada tatasusunan, kita boleh lulus ReflectionClass kelas untuk dilaksanakan:

class BlogPost {
    private $title;
    private $content;
    protected $publishedAt;

    public function __construct($title, $content) {
        $this->title = $title;
        $this->content = $content;
        $this->publishedAt = date('Y-m-d H:i:s');
    }
}

$post = new BlogPost('PHP Object Convert Array', 'PHP 中对象转换数组的实现');

$reflection_class = new ReflectionClass($post);
$properties = $reflection_class->getProperties(ReflectionProperty::IS_PUBLIC | ReflectionProperty::IS_PROTECTED | ReflectionProperty::IS_PRIVATE); // 获取所有属性

$array_post = [];
foreach ($properties as $property) {
    $property->setAccessible(true); // 设置属性可访问
    $array_post[$property->getName()] = $property->getValue($post); // 将属性及属性值添加到数组中
}

print_r($array_post);
Salin selepas log masuk

Dalam contoh di atas, kami menggunakan kelas ReflectionClass dan ReflectionProperty untuk mendapatkan semua sifat objek, termasuk harta awam, harta dilindungi dan harta persendirian. Kemudian tetapkan atribut boleh diakses melalui kaedah setAccessible(), dan akhirnya tambahkan atribut dan nilai atribut pada tatasusunan Hasil output adalah seperti berikut:

Array
(
    [title] => PHP Object Convert Array
    [content] => PHP 中对象转换数组的实现
    [publishedAt] => 2021-09-14 15:10:34
)
Salin selepas log masuk

Ringkasnya, PHP menyediakan pelbagai. cara menukar objek kepada Untuk tatasusunan, cara biasa ialah menggunakan watak pelakon (array). Pada masa yang sama, kami juga boleh menambahkan sifat peribadi dan sifat dilindungi secara terpilih pada tatasusunan, yang boleh dicapai melalui kelas ReflectionClass. Tidak kira kaedah yang digunakan, anda boleh menukar objek kepada tatasusunan dengan mudah untuk pemprosesan dan penghantaran data objek yang lebih baik.

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!

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

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

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)

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.

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.

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.

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.

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 API Kadar Mengehadkan: Strategi Pelaksanaan. PHP API Kadar Mengehadkan: Strategi Pelaksanaan. Mar 26, 2025 pm 04:16 PM

Artikel ini membincangkan strategi untuk melaksanakan kadar API yang mengehadkan PHP, termasuk algoritma seperti baldi token dan baldi bocor, dan menggunakan perpustakaan seperti simfoni/kadar-limiter. Ia juga meliputi pemantauan, had kadar penyesuaian secara dinamik, dan tangan

Pengesahan Input PHP: Amalan Terbaik. Pengesahan Input PHP: Amalan Terbaik. Mar 26, 2025 pm 04:17 PM

Artikel membincangkan amalan terbaik untuk pengesahan input PHP untuk meningkatkan keselamatan, memberi tumpuan kepada teknik seperti menggunakan fungsi terbina dalam, pendekatan putih, dan pengesahan sisi pelayan.

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.

See all articles