Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menukar objek kepada tatasusunan dalam php

Bagaimana untuk menukar objek kepada tatasusunan dalam php

PHPz
PHPzasal
2023-04-17 14:14:39644semak imbas

Dalam PHP, Object dan Array ialah dua jenis data yang berbeza. Tetapi kadangkala kita perlu menukar objek kepada tatasusunan, seperti menukar sifat dan kaedah objek instantiasi kelas kepada tatasusunan untuk kegunaan mudah.

Dalam PHP, terdapat beberapa cara untuk mencapai penukaran objek kepada tatasusunan.

1. Gunakan fungsi get_object_vars()

Ini ialah kaedah paling asas dan kaedah paling mudah. Fungsi get_object_vars() boleh mengembalikan tatasusunan semua atribut dan nilai atribut dalam objek.

Contohnya:

class MyClass {
    public $a = 1;
    protected $b = 2;
    private $c = 3;

    public function test(){
        return "hello world!";
    }
}

$obj = new MyClass();
$array = get_object_vars($obj);

print_r($array);

Output:

Array
(
    [a] => 1
)

Seperti yang anda lihat, fungsi get_object_vars() hanya mendapat nilai atribut awam $a, dan untuk dilindungi Dan harta persendirian $b dan $c, nilainya tidak diperoleh.

2. Gunakan penghantaran objek

Dalam PHP, anda boleh menggunakan penghantaran jenis untuk menukar objek kepada tatasusunan. Penukaran jenis paksa menggunakan kata kunci "(tatasusunan)".

Contohnya:

class MyClass {
    public $a = 1;
    protected $b = 2;
    private $c = 3;

    public function test(){
        return "hello world!";
    }
}

$obj = new MyClass();
$array = (array) $obj;

print_r($array);

Output:

Array
(
    [a] => 1
    [*b] => 2
    MyClassprivatec] => 3
)

Tatasusunan mengandungi semua atribut dan nilai atribut, tetapi atribut yang dilindungi dan peribadi akan mempunyai * Atau kelas awalan nama untuk membezakannya daripada harta awam.

Perlu diingatkan bahawa kaedah ini tidak menyenaraikan kaedah dalam objek, hanya sifat objek.

3. Gunakan fungsi json_decode()

Dalam PHP, anda boleh menggunakan fungsi json_decode() untuk menukar rentetan format JSON kepada tatasusunan atau objek. Oleh itu, sifat objek boleh dikodkan dalam format JSON dan kemudian dinyahkodkan ke dalam tatasusunan.

Contohnya:

class MyClass {
    public $a = 1;
    protected $b = 2;
    private $c = 3;

    public function test(){
        return "hello world!";
    }
}

$obj = new MyClass();
$json = json_encode($obj);
$array = json_decode($json, true);

print_r($array);

Output:

Array
(
    [a] => 1
    [b] => 2
    [MyClassprivatec] => 3
)

Perlu diambil perhatian bahawa kaedah ini juga akan menukar sifat dilindungi dan peribadi ke dalam tatasusunan, tetapi akan Menambah awalan nama kelas.

Ringkasan

Di atas ialah beberapa kaedah untuk menukar objek kepada tatasusunan, termasuk menggunakan fungsi get_object_vars(), penukaran jenis paksa dan fungsi json_decode(). Yang paling biasa digunakan ialah fungsi cast dan json_decode().

Perlu diambil perhatian bahawa apabila menggunakan penukaran jenis paksa dan fungsi json_decode(), nilai-nilai atribut yang dilindungi dan peribadi mungkin mempunyai awalan nama kelas atau simbol seperti *, yang perlu diproses mengikut kepada keadaan tertentu.

Atas ialah kandungan terperinci Bagaimana untuk menukar objek kepada tatasusunan dalam php. 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