Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana dengan Pantas Menukar Objek PHP menjadi Tatasusunan Bersekutu?

Bagaimana dengan Pantas Menukar Objek PHP menjadi Tatasusunan Bersekutu?

DDD
Lepaskan: 2024-12-21 19:07:10
asal
432 orang telah melayarinya

How to Quickly Convert a PHP Object into an Associative Array?

Cara Menukar Objek PHP kepada Array Bersekutu dengan Pantas

Apabila menyepadukan API yang beroperasi dengan data berasaskan objek, keperluan sering timbul untuk menukar objek ini kepada tatasusunan untuk diselaraskan dengan kod sedia ada menggunakan tatasusunan. Berikut ialah penyelesaian yang ringkas dan mudah untuk melaksanakan penukaran ini:

Taip Objek:

Untuk menukar objek kepada tatasusunan bersekutu, anda hanya boleh menaipnya seperti itu:

$array = (array) $yourObject;
Salin selepas log masuk

Kaedah taip ini adalah pendekatan langsung dan cekap. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa ia hanya melakukan penukaran cetek.

Kebolehcapaian Harta dalam Tatasusunan Cast:

Apabila menaip objek kepada tatasusunan, pelbagai peraturan dikenakan berkenaan kebolehcapaian hartanah:

  • Hartanah awam boleh diakses terus di tatasusunan.
  • Sifat peribadi mempunyai 'foo' didahulukan pada nama pembolehubah.
  • Sifat yang dilindungi mempunyai '*foo' didahulukan pada nama pembolehubah .

Harta Integer Penukaran:

Sifat integer tidak boleh diakses dan tidak akan muncul dalam tatasusunan yang ditukar.

Contoh: Menukar Mudah Objek:

$object = new StdClass;
$object->foo = 1;
$object->bar = 2;

var_dump( (array) $object );
Salin selepas log masuk

Output:

array(2) {
  'foo' => int(1)
  'bar' => int(2)
}
Salin selepas log masuk

Contoh: Menukar Objek Kompleks dengan Peribadi dan Dilindungi Sifat:

class Foo {
    private $foo;
    protected $bar;
    public $baz;

    public function __construct() {
        $this->foo = 1;
        $this->bar = 2;
        $this->baz = new StdClass;
    }
}

var_dump( (array) new Foo );
Salin selepas log masuk

Output:

array(3) {
  'Foofoo' => int(1)
  '*bar' => int(2)
  'baz' => class stdClass#2 (0) {}
}
Salin selepas log masuk

Seperti yang anda boleh perhatikan, sifat peribadi dan dilindungi hadir dalam tatasusunan yang ditukar dengan prepended yang ditentukan awalan.

Pemutus Dalam dan Bukan Awam Sifat:

Perhatikan bahawa kaedah tuangan taip ini tidak melakukan tuangan dalam. Untuk mengakses atribut bukan awam, anda mungkin perlu menggunakan bait nol secara eksplisit, seperti yang dijelaskan dalam dokumentasi PHP rasmi.

Untuk mendapatkan maklumat yang lebih mendalam, rujuk sumber yang dipautkan:

  • Kelas Terbina dalam PHP stdClass: https://www.php.net/manual/en/class.stdclass.php
  • Catatan Blog Penukaran Objek PHP Pantas kepada Array Penukaran: https://dereuromark.de/2011/02/03/fast- php-object-to-array-conversion/

Atas ialah kandungan terperinci Bagaimana dengan Pantas Menukar Objek PHP menjadi Tatasusunan Bersekutu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan