Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk menukar objek dalam PHP
Memandangkan PHP menjadi bahasa arus perdana untuk pembangunan web moden, semakin ramai pembangun terlibat dalam pengaturcaraan objek. Dalam PHP, objek adalah struktur data yang sangat berkuasa dan biasa. Walau bagaimanapun, dalam pembangunan sebenar, kita sering perlu menukar objek kepada rentetan atau objek tatasusunan untuk melaksanakan operasi lain. Artikel ini akan memperkenalkan cara melakukan penukaran objek dalam PHP, termasuk penukaran rentetan, penukaran tatasusunan dan penukaran tatasusunan objek.
1. Tukar objek PHP kepada rentetan
Dalam PHP, menukar objek kepada rentetan adalah sangat mudah. Anda hanya perlu mentakrifkan kaedah ajaib __toString() dalam objek, yang secara automatik akan menukar objek kepada rentetan apabila dipanggil. Contohnya, kod sampel berikut:
class Person{ public $name; public $age; public function __construct($name,$age){ $this->name = $name; $this->age = $age; } public function __toString(){ return $this->name . " is " . $this->age . " years old."; } } $person = new Person("Tom",20); echo $person;
Hasil yang dijalankan ialah:
Tom is 20 years old.
Dalam kod sampel di atas, kami mentakrifkan kelas Orang, yang mempunyai dua atribut $name dan $umur, mewakili nama dan umur orang itu masing-masing. Kami juga mentakrifkan kaedah __toString(), yang secara automatik menukar objek kepada rentetan untuk mencapai penukaran objek.
2. Tukar objek PHP kepada tatasusunan
Selain menukar objek kepada rentetan, kita juga boleh menukar objek kepada tatasusunan. PHP menyediakan dua kaedah untuk menukar objek kepada tatasusunan. Salah satunya ialah menggunakan fungsi get_object_vars(), yang boleh mengembalikan senarai atribut objek Kaedah lain ialah menggunakan pengakses atribut objek "->" untuk mendapatkan nilai atribut objek. Seperti yang ditunjukkan dalam kod sampel berikut:
class Person{ public $name; public $age; public function __construct($name,$age){ $this->name = $name; $this->age = $age; } public function toArray(){ return get_object_vars($this); } } $person = new Person("Tom",20); print_r($person->toArray());
Hasil yang dijalankan ialah:
Array ( [name] => Tom [age] => 20 )
Dalam kod sampel di atas, kami mentakrifkan kelas Orang, yang mempunyai dua atribut $name dan $umur mewakili nama dan umur orang itu masing-masing. Kami juga mentakrifkan kaedah toArray(), yang menggunakan fungsi get_object_vars() untuk mengembalikan senarai atribut objek untuk menukar objek kepada tatasusunan.
Selain menggunakan fungsi get_object_vars(), kita juga boleh menggunakan pengakses atribut objek "->" untuk mendapatkan nilai atribut objek, dengan itu menukar objek kepada tatasusunan. Seperti yang ditunjukkan di bawah:
class Person{ public $name; public $age; public function __construct($name,$age){ $this->name = $name; $this->age = $age; } public function toArray(){ return array( "name" => $this->name, "age" => $this->age ); } } $person = new Person("Tom",20); print_r($person->toArray());
Hasil yang dijalankan ialah:
Array ( [name] => Tom [age] => 20 )
Dalam kod contoh di atas, kami mentakrifkan kelas Orang, yang mempunyai dua atribut $name dan $ Age mewakili nama orang dan umur masing-masing. Kami juga mentakrifkan kaedah toArray(), yang menggunakan pengakses harta objek "->" untuk mendapatkan nilai harta objek dan mengembalikan tatasusunan harta, dengan itu menukar objek menjadi tatasusunan.
3. Tukar tatasusunan objek PHP kepada tatasusunan
Dalam pembangunan sebenar, kita selalunya perlu menukar berbilang objek kepada tatasusunan dan membentuk tatasusunan ini menjadi objek tatasusunan. PHP menyediakan dua kaedah untuk mencapai fungsi ini, satu adalah menggunakan traversal tatasusunan, dan satu lagi adalah menggunakan pemetaan tatasusunan. Seperti yang ditunjukkan dalam kod sampel berikut:
class Person{ public $name; public $age; public function __construct($name,$age){ $this->name = $name; $this->age = $age; } public function toArray(){ return array( "name" => $this->name, "age" => $this->age ); } } $persons = array( new Person("Tom",20), new Person("Jerry",25), new Person("Kate",30) ); //数组遍历 $result = array(); foreach($persons as $person){ $result[] = $person->toArray(); } print_r($result); //数组映射 $result = array_map(function($person){ return $person->toArray(); },$persons); print_r($result);
Hasil yang dijalankan ialah:
Array ( [0] => Array ( [name] => Tom [age] => 20 ) [1] => Array ( [name] => Jerry [age] => 25 ) [2] => Array ( [name] => Kate [age] => 30 ) ) Array ( [0] => Array ( [name] => Tom [age] => 20 ) [1] => Array ( [name] => Jerry [age] => 25 ) [2] => Array ( [name] => Kate [age] => 30 ) )
Dalam kod sampel di atas, kami mentakrifkan kelas Orang, yang mempunyai dua atribut $name dan $umur mewakili nama dan umur orang itu masing-masing. Kami juga mentakrifkan kaedah toArray(), yang menggunakan pengakses harta objek "->" untuk mendapatkan nilai harta objek dan mengembalikan tatasusunan harta, dengan itu menukar objek menjadi tatasusunan.
Kami mentakrifkan tatasusunan $orang yang mengandungi berbilang objek Orang. Menggunakan traversal tatasusunan atau pemetaan tatasusunan, kita boleh menukar setiap objek Orang kepada tatasusunan dan kemudian membentuk objek tatasusunan. Hasil akhir ialah tatasusunan yang mengandungi pelbagai objek tatasusunan.
Ringkasan:
PHP menyediakan pelbagai kaedah untuk melaksanakan penukaran objek, termasuk penukaran rentetan, penukaran tatasusunan dan penukaran tatasusunan objek. Kita boleh memilih kaedah yang sesuai mengikut keperluan sebenar untuk merealisasikan fungsi penukaran objek.
Atas ialah kandungan terperinci Bagaimana untuk menukar objek dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!