Dalam pengaturcaraan PHP, kita selalunya perlu menukar objek kepada tatasusunan. Keperluan ini biasanya disebabkan oleh fakta bahawa apabila kita menulis aplikasi web, data yang diperoleh daripada pangkalan data atau sumber data lain biasanya dikembalikan dalam bentuk objek. Untuk mengendalikan data ini dan membentangkannya dalam cara yang mudah dibaca dan diproses, kita perlu menukar objek ini kepada tatasusunan.
PHP terkenal dengan fleksibiliti dan kemudahan penggunaannya, jadi menukar objek kepada tatasusunan juga sangat mudah. Dalam PHP, kami boleh menggunakan beberapa fungsi terbina dalam untuk menyelesaikan tugas ini, dan kami juga boleh menggunakan perpustakaan pihak ketiga untuk meningkatkan kebolehsesuaian dan kefungsian penukaran.
Dalam artikel ini, kami akan meneroka beberapa cara untuk menukar objek yang dikembalikan oleh PHP kepada tatasusunan. Dalam kaedah ini, kami akan menggunakan sintaks PHP 7. Walau bagaimanapun, anda boleh dengan mudah menyesuaikan sintaks dalam kod contoh ini kepada versi PHP yang lebih awal.
Pertama, mari kita perkenalkan cara paling mudah - gunakan jenis tuangan (jenis paksaan). Kaedah ini ialah cara paling mudah untuk menukar objek kepada tatasusunan, dan ia juga merupakan cara paling biasa untuk menggunakannya.
Apabila menggunakan penghantaran jenis, kita hanya perlu mengelilingi objek dengan kata kunci tatasusunan. Contohnya:
<?php // a sample object $obj = (object) ['foo' => 'bar', 'property' => 1]; // using type casting to convert object to array $array = (array) $obj; // displaying the array print_r($array); ?>
Outputnya adalah seperti berikut:
Array ( [foo] => bar [property] => 1 )
Seperti yang anda lihat, kita boleh menggunakan jenis casting untuk menukar objek $obj kepada array $array. Setelah penukaran selesai, kita boleh menggunakan fungsi print_r() untuk melihat kandungan tatasusunan.
Kedua, mari kita gunakan pintasan terbina dalam dalam PHP - fungsi get_object_vars(). Fungsi ini mengembalikan tatasusunan bersekutu yang terdiri daripada atribut objek dinamakan sebagai kunci dan nilai atribut sebagai nilai.
Apabila menggunakan kaedah ini, kita hanya perlu mengendalikan objek melalui fungsi get_object_vars() dan menyimpan hasilnya dalam tatasusunan. Sebagai contoh:
<?php // a sample object $obj = (object) ['foo' => 'bar', 'property' => 1]; // using get_object_vars() function to convert object to array $array = get_object_vars($obj); // displaying the array print_r($array); ?>
Outputnya ialah:
Array ( [foo] => bar [property] => 1 )
Seperti yang anda lihat, kami menghantar objek $obj ke fungsi get_object_vars() dan menyimpan hasilnya dalam array $array. Dalam contoh ini, fungsi mengembalikan hasil yang sama yang digunakan dalam contoh pemutus jenis.
Ketiga, jika objek lebih kompleks, atau kami ingin menggabungkan berbilang objek ke dalam tatasusunan, maka kita Ini boleh dicapai dengan mudah menggunakan fungsi serialize() dan unserialize(). Fungsi bersiri bersiri() boleh mensirikan objek menjadi rentetan, dan fungsi unserialize() boleh menyahsiri rentetan menjadi objek.
Apabila menggunakan pendekatan ini, kita perlu menyerikan objek terlebih dahulu untuk dapat menukarnya kepada rentetan dan menyimpannya dalam tatasusunan. Contohnya:
<?php // a sample object $obj1 = (object) ['foo' => 'bar', 'property' => 1]; $obj2 = (object) ['abc' => 'def', 'number' => 100]; // serialize objects to string, and then concatenate two strings into one $str = serialize($obj1) . serialize($obj2); // unserialize the concatenated string to array $array = unserialize($str); // displaying the array print_r($array); ?>
Outputnya adalah seperti berikut:
Array ( [foo] => bar [property] => 1 [abc] => def [number] => 100 )
Seperti yang anda lihat, kami telah mencipta dua objek $obj1 dan $obj2 dalam contoh ini dan menyusunnya menjadi rentetan aksara. Seterusnya, kami menggabungkan dua rentetan menggunakan pengendali titik dan menghantar rentetan bercantum ini kepada fungsi unserialize() untuk menyahsirikannya menjadi array $array. Tatasusunan ini akan mengandungi semua sifat dan nilai kedua-dua objek.
Kesimpulan
Dalam artikel ini, kami mempelajari tiga cara untuk menukar objek yang dikembalikan oleh PHP kepada tatasusunan: taip penghantaran, penukaran menggunakan fungsi get_object_vars() dan serialize(), unserialize () penukaran fungsi . Penggunaan kaedah ini bergantung pada keperluan khusus anda. Jika anda menghadapi objek kompleks atau mempunyai berbilang objek yang perlu ditukar, menggunakan fungsi serialize() dan unserialize() mungkin merupakan pilihan yang lebih baik. Walau bagaimanapun, untuk objek mudah, mungkin lebih mudah untuk menggunakan jenis cast atau fungsi get_object_vars().
Atas ialah kandungan terperinci Objek pulangan PHP ditukar kepada tatasusunan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!