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.
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.
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.
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.
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!