Rumah > pembangunan bahagian belakang > masalah PHP > Bagaimana untuk menukar objek kepada tatasusunan bersekutu dalam php

Bagaimana untuk menukar objek kepada tatasusunan bersekutu dalam php

PHPz
Lepaskan: 2023-04-17 14:53:47
asal
522 orang telah melayarinya

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."
Salin selepas log masuk

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"
Salin selepas log masuk

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 )
Salin selepas log masuk

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 )
Salin selepas log masuk

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 )
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan