Rumah > Artikel > pembangunan bahagian belakang > Tukar objek php dan tatasusunan antara satu sama lain
Dalam PHP, objek dan tatasusunan ialah dua jenis data yang sangat penting. Objek biasanya digunakan untuk mewakili entiti dan konsep dalam dunia nyata, manakala tatasusunan digunakan untuk menyimpan satu set data yang berkaitan. Tetapi dalam pembangunan sebenar, kita mungkin perlu menukar objek kepada tatasusunan, atau menukar tatasusunan menjadi objek. Artikel ini akan memperkenalkan kaedah dan teknik untuk menukar antara objek dan tatasusunan dalam PHP.
1. Tukar objek kepada tatasusunan
Terdapat dua kaedah utama untuk menukar objek kepada tatasusunan: penukaran automatik dan penukaran manual.
Dalam PHP, objek boleh dilalui seperti tatasusunan atau dicetak terus, dalam keadaan ini PHP akan menukar objek itu kepada tatasusunan secara automatik. Contohnya:
class Person { public $name = 'Jack'; private $age = 30; } $person = new Person(); print_r($person); // 输出结果:Person Object ( [name] => Jack )
Dalam contoh di atas, walaupun kami tidak mentakrifkan kaedah Person
dalam kelas __toString()
untuk menentukan rentetan yang sepatutnya dikeluarkan apabila objek dicetak, PHP masih boleh menukar objek ke dalam objek yang mengandungi name
Susun atur atribut. Ini kerana PHP akan menyimpan semua public
sifat objek sebagai pasangan nilai kunci tatasusunan, dan sifat private
dan protected
tidak boleh diakses.
Selain itu, jika kita melintasi objek, PHP secara automatik akan menukar objek itu kepada tatasusunan. Contohnya:
foreach ($person as $key => $value) { echo $key . ': ' . $value . PHP_EOL; }
Pada masa ini, PHP akan menukar objek $person
secara automatik kepada tatasusunan yang mengandungi atribut name
dan kemudian mengeluarkan pasangan nilai kunci apabila melintasi tatasusunan.
Jika kita perlu mengawal proses menukar objek kepada tatasusunan dengan lebih tepat, kita boleh menggunakan fungsi get_object_vars()
untuk mendapatkan semua sifat objek, dan kemudian gunakan array()
Fungsi menukarnya kepada tatasusunan. Contohnya:
class Person { public $name = 'Jack'; private $age = 30; public function toArray() { return array( 'name' => $this->name, 'age' => $this->age ); } } $person = new Person(); print_r($person->toArray()); // 输出结果:Array ( [name] => Jack, [age] => 30 )
Dalam contoh di atas, kami telah menentukan kaedah toArray()
yang mengembalikan tatasusunan yang mengandungi sifat name
dan age
. Di sini kita boleh mengawal secara manual atribut yang perlu ditukar kepada tatasusunan, dan surat-menyurat nilai kunci dalam tatasusunan.
2. Menukar tatasusunan menjadi objek
Terdapat dua kaedah utama untuk menukar tatasusunan kepada objek: penukaran tatasusunan dan penukaran paksa.
Apabila nilai kunci tatasusunan adalah sama dengan nama atribut kelas, kita boleh menukar tatasusunan menjadi objek contoh kelas .
class Person { public $name; public $age; } $data = array('name' => 'Jack', 'age' => 30); $person = (object)$data; echo $person->name; // 输出结果:'Jack'
Dalam contoh di atas, kami menggunakan pasangan nilai kunci dalam tatasusunan $data
untuk menetapkan nilai kepada atribut kelas Person
dan kemudian menukar tatasusunan menjadi objek contoh bagi kelas Person
. Ambil perhatian bahawa di sini kami menggunakan operator cast (object)
untuk menukar tatasusunan kepada objek.
Sudah tentu, jika kita perlu menukar berbilang tatasusunan dalam kelompok, kita juga boleh menggunakan gelung untuk melaksanakan penukaran.
class Person { public $name; public $age; } $dataList = array( array('name' => 'Jack', 'age' => 30), array('name' => 'Lucy', 'age' => 25) ); $personList = array(); foreach ($dataList as $data) { $personList[] = (object)$data; } echo $personList[0]->name; // 输出结果:'Jack' echo $personList[1]->name; // 输出结果:'Lucy'
Dalam contoh di atas, kami menggunakan gelung untuk menukar secara berkelompok kepada objek. Di sini kami menggunakan operator (object)
untuk menukar tatasusunan kepada objek dan menambahnya pada tatasusunan $personList
.
Selain menggunakan operator (object)
untuk penukaran, kami juga boleh menggunakan hantaran untuk menukar tatasusunan kepada objek. Contohnya:
class Person { public $name; public $age; } $data = array('name' => 'Jack', 'age' => 30); $person = new Person(); $person->name = $data['name']; $person->age = $data['age']; echo $person->name; // 输出结果:'Jack'
Dalam contoh di atas, kita mula-mula mencipta objek contoh kelas Person
, dan kemudian memberikan nilai kepada sifat name
dan age
masing-masing. Kaedah ini memerlukan kita untuk menetapkan nilai secara manual kepada setiap atribut, yang nampaknya agak menyusahkan. Oleh itu, anda perlu memilih mengikut situasi tertentu semasa menggunakannya.
Ringkasan
Objek dan tatasusunan ialah dua jenis data yang sangat penting dalam PHP, yang biasanya digunakan untuk menyimpan dan memanipulasi data. Dalam pembangunan sebenar, kita boleh menukar objek kepada tatasusunan, atau tatasusunan menjadi objek. Artikel ini memperkenalkan kaedah dan teknik untuk menukar objek dan tatasusunan dalam PHP, termasuk penukaran automatik dan penukaran manual. Saya harap artikel ini dapat membantu semua orang menguasai kemahiran pengaturcaraan PHP dengan lebih baik dan meningkatkan kecekapan pembangunan.
Atas ialah kandungan terperinci Tukar objek php dan tatasusunan antara satu sama lain. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!