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);

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
)

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);

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
)

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

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

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.

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)

Topik panas

Tutorial PHP
1517
276