Cara Menukar Objek kepada Format Tatasusunan dengan Berkesan
Dalam PHP, anda mungkin menghadapi situasi di mana objek perlu ditukar kepada format tatasusunan. Artikel ini menyelidiki pelbagai teknik untuk mencapai penukaran ini.
Tasusunan Satu Dimensi
Dua kaedah sering digunakan untuk menukar tatasusunan satu dimensi:
-
Penghantaran Jenis Eksplisit: Hanya menghantar objek ke tatasusunan menggunakan (tatasusunan) mengekalkan semua objek hartanah, termasuk ahli persendirian dan dilindungi.
$array = (array) $object;
-
get_object_vars(): Fungsi ini mendapatkan semula tatasusunan yang mengandungi hanya sifat yang boleh diakses secara umum. Dalam skop objek, ia merangkumi semua sifat.
$array = get_object_vars($object);
Susun Berbilang Dimensi
Menukar tatasusunan berbilang dimensi memerlukan pendekatan yang sedikit berbeza.
-
Pengekodan dan Penyahkodan JSON: Kaedah ini serasi dengan PHP 5.2 atau lebih baru. Pengekodan JSON menukarkan objek kepada rentetan JSON, yang kemudiannya dinyahkod semula menjadi tatasusunan bersekutu. Walau bagaimanapun, pendekatan ini tidak mengendalikan ahli peribadi dan dilindungi atau objek yang mengandungi data tidak boleh dikodkan JSON.
$array = json_decode(json_encode($object), true);
-
Fungsi Tersuai: Fungsi berikut, berdasarkan pada versi diubah suai yang terdapat di tempat lain, menyediakan pilihan yang lebih komprehensif:
function objectToArray($object) {
if (is_object($object) || is_array($object)) {
return array_map('objectToArray', (array) $object);
}
return $object;
}
Fungsi ini secara rekursif menukar semua sifat objek ke dalam format tatasusunan, tanpa mengira pengubah suai akses.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menukar Objek PHP dengan Berkesan menjadi Array?. 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