


Bagaimana untuk menukar objek kepada array dalam php
Menukar objek PHP kepada tatasusunan adalah salah satu masalah yang sering dihadapi oleh ramai pengaturcara semasa pembangunan. Objek dan tatasusunan adalah kedua-dua jenis data yang biasa digunakan dalam PHP, tetapi ia berbeza. Objek ialah jenis data kompleks yang mewakili contoh kelas, manakala tatasusunan ialah koleksi tertib yang mengandungi berbilang skalar, tatasusunan, objek dan elemen lain. Bagaimana untuk menukar objek kepada array? Artikel ini akan memperkenalkan beberapa kaedah.
Kaedah 1: Gunakan penukaran jenis paksa
Anda boleh menggunakan penukaran jenis paksa untuk menukar objek kepada tatasusunan. Semasa menghantar, hantar objek ke tatasusunan dan gunakan (tatasusunan) untuk menghantar objek ke tatasusunan. Contohnya:
class Student{ public $name; public $age; } $stu = new Student(); $stu->name = "Tom"; $stu->age = 18; $arr = (array)$stu; print_r($arr);
Hasil output ialah:
Array ( [name] => Tom [age] => 18 )
Kaedah ini mudah dan berkesan, tetapi perlu diingatkan bahawa sesetengah atribut mungkin hilang semasa melakukan penukaran cast , kerana cast akan membuang harta bukan awam (peribadi dan dilindungi) dalam objek.
Kaedah 2: Gunakan kaedah objek
Jika anda ingin menukar sifat bukan awam dalam objek kepada tatasusunan, anda boleh menggunakan kaedah objek get_object_vars() untuk mencapai ini. get_object_vars() mengembalikan tatasusunan yang mengandungi atribut objek dan nilainya. Contohnya:
class Student{ public $name; private $age; public function __construct($name, $age){ $this->name = $name; $this->age = $age; } public function getAge(){ return $this->age; } } $stu = new Student("Tom", 18); $arr = get_object_vars($stu); $arr['age'] = $stu->getAge(); print_r($arr);
Hasil output ialah:
Array ( [name] => Tom [age] => 18 )
Dengan menggunakan kaedah get_object_vars(), objek boleh ditukar kepada tatasusunan sambil mengekalkan atribut peribadi dalam objek .
Kaedah 3: Penukaran rekursif
Kaedah rekursif menukar objek dan tatasusunan kepada tatasusunan secara rekursif. Kaedah ini menukar objek kepada tatasusunan dalam sebarang situasi, termasuk apabila bersarang dalam objek atau tatasusunan lain. Berikut ialah contoh penukaran rekursif:
class Student{ public $name; public $age; public function __construct($name, $age){ $this->name = $name; $this->age = $age; } } class Grade{ public $name; public $students; public function __construct($name, $students){ $this->name = $name; $this->students = $students; } } $stu1 = new Student("Tom", 18); $stu2 = new Student("Jerry", 19); $grade = new Grade("一年级", [$stu1, $stu2]); function objectToArray($d) { if (is_object($d)) { $d = get_object_vars($d); } if (is_array($d)) { return array_map(__FUNCTION__, $d); } else { return $d; } } $arr = objectToArray($grade); print_r($arr);
Outputnya ialah:
Array ( [name] => 一年级 [students] => Array ( [0] => Array ( [name] => Tom [age] => 18 ) [1] => Array ( [name] => Jerry [age] => 19 ) ) )
Seperti yang dinyatakan di atas, kaedah rekursif sangat berguna untuk data dalam tatasusunan bersarang dan struktur objek .
Kaedah 4: Gunakan json_decode() dan json_encode()
Kaedah terakhir ialah menggunakan fungsi json_decode() dan json_encode(). Kodkan objek ke dalam rentetan format JSON dan nyahkodkannya ke dalam tatasusunan menggunakan json_decode(). Pendekatan ini juga berfungsi dengan tatasusunan dan objek bersarang. Contohnya:
class Student{ public $name; public $age; public function __construct($name, $age){ $this->name = $name; $this->age = $age; } } class Grade{ public $name; public $students; public function __construct($name, $students){ $this->name = $name; $this->students = $students; } } $stu1 = new Student("Tom", 18); $stu2 = new Student("Jerry", 19); $grade = new Grade("一年级", [$stu1, $stu2]); $json = json_encode($grade); $arr = json_decode($json, true); print_r($arr);
Outputnya ialah:
Array ( [name] => 一年级 [students] => Array ( [0] => Array ( [name] => Tom [age] => 18 ) [1] => Array ( [name] => Jerry [age] => 19 ) ) )
Walaupun json_decode() dan json_encode() boleh menukar objek PHP kepada tatasusunan dengan mudah, mereka tidak boleh menukar sifat peribadi ialah tatasusunan.
Artikel ini memperkenalkan empat kaedah berbeza untuk menukar objek kepada tatasusunan. Dalam pembangunan sebenar, kaedah yang paling sesuai harus dipilih berdasarkan situasi sebenar.
Atas ialah kandungan terperinci Bagaimana untuk menukar objek kepada array dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Kompilasi JIT Php 8 meningkatkan prestasi dengan menyusun kod yang sering dilaksanakan ke dalam kod mesin, memberi manfaat kepada aplikasi dengan pengiraan berat dan mengurangkan masa pelaksanaan.

Artikel ini membincangkan kelemahan OWASP 10 dalam strategi PHP dan mitigasi. Isu -isu utama termasuk suntikan, pengesahan yang rosak, dan XSS, dengan alat yang disyorkan untuk memantau dan mendapatkan aplikasi PHP.

Artikel ini membincangkan mendapatkan muat naik fail PHP untuk mengelakkan kelemahan seperti suntikan kod. Ia memberi tumpuan kepada pengesahan jenis fail, penyimpanan selamat, dan pengendalian ralat untuk meningkatkan keselamatan aplikasi.

Artikel ini membincangkan penyulitan simetri dan asimetrik dalam PHP, membandingkan kesesuaian, prestasi, dan perbezaan keselamatan mereka. Penyulitan simetri lebih cepat dan sesuai untuk data pukal, manakala asimetrik digunakan untuk pertukaran utama yang selamat.

Artikel ini membincangkan pelaksanaan pengesahan dan kebenaran yang mantap dalam PHP untuk mencegah akses yang tidak dibenarkan, memperincikan amalan terbaik dan mengesyorkan alat peningkatan keselamatan.

Kenyataan yang disediakan dalam PHP meningkatkan keselamatan pangkalan data dan kecekapan dengan mencegah suntikan SQL dan meningkatkan prestasi pertanyaan melalui kompilasi dan penggunaan semula.

Artikel ini membincangkan strategi untuk melaksanakan kadar API yang mengehadkan PHP, termasuk algoritma seperti baldi token dan baldi bocor, dan menggunakan perpustakaan seperti simfoni/kadar-limiter. Ia juga meliputi pemantauan, had kadar penyesuaian secara dinamik, dan tangan

Artikel ini membincangkan strategi untuk mencegah serangan CSRF di PHP, termasuk menggunakan token CSRF, kuki tapak yang sama, dan pengurusan sesi yang betul.
