Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Menukar Objek stdClass PHP kepada Array dengan Amanah?

Bagaimana untuk Menukar Objek stdClass PHP kepada Array dengan Amanah?

Susan Sarandon
Susan Sarandonasal
2024-11-16 00:13:02490semak imbas

How to Reliably Convert a PHP stdClass Object to an Array?

php stdClass to array

Apabila bekerja dengan PHP, anda mungkin menghadapi keperluan untuk menukar objek stdClass kepada tatasusunan. Penukaran ini boleh menjadi rumit dan kaedah yang berbeza boleh mengakibatkan tingkah laku yang tidak dijangka.

Satu pendekatan biasa ialah menghantar objek ke tatasusunan menggunakan (tatasusunan) $booking. Walau bagaimanapun, kaedah ini mungkin menghasilkan tatasusunan kosong jika objek mengandungi sebarang objek atau tatasusunan bersarang.

Pilihan lain ialah menggunakan json_decode($booking, true). Kaedah ini akan menukar objek kepada tatasusunan, tetapi ia juga boleh menghasilkan tatasusunan kosong jika objek mengandungi sebarang objek atau tatasusunan bersarang.

Kaedah yang lebih dipercayai untuk menukar objek stdClass kepada tatasusunan ialah menggunakan fungsi rekursif yang berulang melalui objek dan anak-anaknya, menukar setiap elemen kepada perwakilan tatasusunan yang sepadan. Berikut ialah contoh fungsi sedemikian:

public function objectToArray($d) {
        if (is_object($d)) {
            // Gets the properties of the given object
            // with get_object_vars function
            $d = get_object_vars($d);
        }

        if (is_array($d)) {
            /*
             * Return array converted to object
             * Using __FUNCTION__ (Magic constant)
             * for recursive call
             */
            return array_map(__FUNCTION__, $d);
        }
        else {
            // Return array
            return $d;
        }
    }

Fungsi ini akan menukar objek stdClass kepada tatasusunan, mengekalkan struktur dan nilai objek asal. Ia juga boleh digunakan untuk menukar tatasusunan kepada objek jika dikehendaki.

Atas ialah kandungan terperinci Bagaimana untuk Menukar Objek stdClass PHP kepada Array dengan Amanah?. 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