PHP ialah bahasa pengaturcaraan berorientasikan objek yang sangat popular, yang memberikan kami sejumlah besar kaedah pengendalian objek. Kadangkala, kita perlu menukar objek kepada tatasusunan bersekutu supaya data boleh dimanipulasi dengan lebih mudah. Dalam artikel ini, kami akan memperkenalkan cara menukar objek kepada tatasusunan bersekutu dalam PHP.
1. Apakah objek dan tatasusunan bersekutu
Sebelum bercakap tentang cara menukar objek kepada tatasusunan bersekutu, kita perlu memahami dahulu apakah objek dan tatasusunan bersekutu.
Objek ialah struktur data dengan sifat dan kaedah yang boleh dibuat dengan membuat seketika kelas. Dalam PHP, objek dicipta menggunakan kata kunci "baru" seperti yang ditunjukkan di bawah:
class Car{ public $brand; public $model; public function info() { return "This is a " . $this->brand . " " . $this->model . "."; } } $car = new Car(); $car->brand = "BMW"; $car->model = "X5"; echo $car->info(); //"This is a BMW X5."
Tatasusunan bersekutu, juga dikenali sebagai jadual cincang atau kamus, ialah sejenis data yang menyimpan pasangan nilai kunci bagi struktur data. Dalam PHP, tatasusunan bersekutu boleh dibuat dengan cara berikut:
$car = array( "brand" => "BMW", "model" => "X5" ); echo $car["brand"]; //"BMW"
2. Tukar objek kepada tatasusunan bersekutu
Dalam PHP, kita boleh menggunakan fungsi get_object_vars() untuk menukar objek kepada Tatasusunan bersekutu. Fungsi ini menerima objek sebagai parameter dan mengembalikan tatasusunan bersekutu yang mengandungi semua sifat dan nilai objek yang sepadan. Contohnya:
class Car{ public $brand; public $model; public function __construct($brand, $model){ $this->brand = $brand; $this->model = $model; } } $car = new Car("BMW", "X5"); $arr = get_object_vars($car); print_r($arr); //Array ( [brand] => BMW [model] => X5 )
Seperti yang dapat dilihat daripada kod di atas, kita mula-mula mentakrifkan kelas Kereta, kemudian tulis pembina, kemudian buat objek Kereta dan hantar objek sebagai parameter kepada get_object_vars() function , fungsi akhir mengembalikan tatasusunan bersekutu yang mengandungi sifat objek dan nilai yang sepadan.
Jika kita hanya mahu menukar sifat tertentu objek kepada tatasusunan bersekutu, bukannya semua sifat, kita boleh menggunakan kod berikut:
class Car{ public $brand; public $model; public function __construct($brand, $model){ $this->brand = $brand; $this->model = $model; } } $car = new Car("BMW", "X5"); $arr = array("brand" => $car->brand, "model" => $car->model); print_r($arr); //Array ( [brand] => BMW [model] => X5 )
Dalam kod di atas, kita secara manual tentukan atribut tatasusunan Bersekutu ("jenama" dan "model"), dan kemudian gabungkan atribut dan nilai yang sepadan ke dalam tatasusunan bersekutu baharu.
3. Keterlihatan atribut objek
Dalam contoh di atas, kami mengakses atribut $brand dan $model kelas Kereta. Walau bagaimanapun, dalam pembangunan sebenar, banyak kali kita akan menetapkan atribut kelas sebagai atribut peribadi, iaitu, menambah kata kunci "peribadi" di hadapan atribut, dengan itu menyekat akses luaran kepada atribut. Kod berikut menunjukkan cara untuk menetapkan sifat kelas Kereta sebagai sifat persendirian:
class Car{ private $brand; private $model; public function __construct($brand, $model){ $this->brand = $brand; $this->model = $model; } public function getBrand(){ return $this->brand; } public function getModel(){ return $this->model; } } $car = new Car("BMW", "X5"); $arr = array("brand" => $car->getBrand(), "model" => $car->getModel()); print_r($arr); //Array ( [brand] => BMW [model] => X5 )
Dalam kod di atas, kami mula-mula menetapkan sifat $brand dan $model kelas Kereta sebagai harta persendirian dan menyediakan Kaedah awam getBrand() dan getModel() digunakan untuk mendapatkan nilai kedua-dua sifat ini. Selepas mencipta objek Kereta, kami menggunakan dua kaedah awam ini untuk mendapatkan nilai atribut, dan kemudian membentuk tatasusunan bersekutu baharu dengan atribut dan nilai yang sepadan.
4. Kesimpulan
Dalam artikel ini, kami memperkenalkan cara menukar objek dalam PHP kepada tatasusunan bersekutu. Kita boleh menggunakan fungsi get_object_vars() untuk menukar objek kepada tatasusunan bersekutu yang mengandungi atribut dan nilai yang sepadan, atau kami boleh menentukan secara manual atribut untuk ditukar kepada tatasusunan bersekutu. Sudah tentu, jika harta kelas adalah peribadi, kita perlu menggunakan kaedah awam untuk mendapatkan nilai harta itu.
Atas ialah kandungan terperinci Bagaimana untuk menukar objek kepada tatasusunan bersekutu dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!