Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bincangkan penukaran jenis antara objek dan tatasusunan dalam PHP

Bincangkan penukaran jenis antara objek dan tatasusunan dalam PHP

PHPz
PHPzasal
2023-04-19 10:09:21608semak imbas

Dalam PHP, objek boleh ditukar kepada tatasusunan. Penukaran jenis ini sangat biasa kerana banyak kali kita perlu menukar sifat dalam objek kepada tatasusunan untuk kegunaan mudah. Dalam artikel ini, kita akan membincangkan penukaran jenis antara objek dan tatasusunan dalam PHP dan memperkenalkan beberapa kaedah yang biasa digunakan.

Tukar objek kepada tatasusunan

Dalam PHP, gunakan fungsi get_object_vars() untuk menukar objek kepada tatasusunan. Fungsi ini akan mengembalikan tatasusunan yang mengandungi sifat objek dan nilai harta, dengan kunci adalah nama harta dan nilai adalah nilai harta benda. Sebagai contoh, kita boleh mentakrifkan objek dengan berbilang sifat dan kemudian menukarnya kepada tatasusunan:

class Person {
    public $name = '';
    public $age = '';
    public $email = '';
}

$person = new Person();
$person->name = 'Jack';
$person->age = 25;
$person->email = 'jack@example.com';

$person_array = get_object_vars($person);

print_r($person_array);

Outputnya adalah seperti berikut:

Array
(
    [name] => Jack
    [age] => 25
    [email] => jack@example.com
)

Seperti yang ditunjukkan di atas, kami mencipta Objek Person dengan tiga sifat ditetapkan: name, age dan email. Kami kemudian menggunakan fungsi get_object_vars() untuk menukar objek ini kepada tatasusunan.

Tukar tatasusunan kepada objek

Kami juga boleh menukar tatasusunan kepada objek. Gunakan (object) penukaran jenis dalam PHP untuk mencapai operasi ini. Kaedah ini berfungsi dengan tatasusunan bersekutu, di mana kunci tatasusunan akan menjadi nama harta objek, dan nilai tatasusunan akan menjadi nilai harta objek.

$data = array(
    'name' => 'Tom',
    'age'  => 22,
    'email' => 'tom@example.com'
);

$person = (object) $data;

print_r($person);

Output adalah seperti berikut:

stdClass Object
(
    [name] => Tom
    [age] => 22
    [email] => tom@example.com
)

Seperti yang ditunjukkan di atas, kami mencipta tatasusunan bersekutu $data dan kemudian menggunakan fungsi (object) untuk menukarnya menjadi objek . Jenis objek yang diperoleh selepas penukaran ialah stdClass, iaitu jenis standard terbina dalam.

Mencampurkan Tatasusunan dan Objek

Dalam PHP, tatasusunan dan objek boleh ditukar kepada satu sama lain, dan ia boleh digunakan bersama. Sebagai contoh, kita boleh menukar objek kepada tatasusunan, mengubah suai beberapa sifatnya, dan kemudian menukarnya kembali kepada objek asal. Ini amat berguna dalam sesetengah kes, seperti apabila kita perlu mengubah suai data JSON yang dikembalikan oleh API dan kemudian mensirikannya ke dalam format JSON dan mengembalikannya.

$data = '{"name":"Tom","age":22,"email":"tom@example.com"}';
$person = json_decode($data);

$person_array = get_object_vars($person);

$person_array['age'] = 23;

$person = (object) $person_array;

echo json_encode($person);

Hasil output adalah seperti berikut:

{"name":"Tom","age":23,"email":"tom@example.com"}

Seperti yang ditunjukkan di atas, kami mula-mula menggunakan fungsi json_decode() untuk menukar rentetan berformat JSON kepada objek. Kami kemudian menukar objek kepada tatasusunan$person_array dan mengubah suai nilai di dalamnya. Akhir sekali, kami menggunakan penukaran jenis (object) untuk menukar tatasusunan yang diubah suai kembali kepada objek, dan fungsi json_encode() untuk mensiri objek ke dalam format rentetan JSON.

Kesimpulan

Dalam PHP, menukar objek dan tatasusunan ialah penukaran jenis yang sangat biasa. Gunakan fungsi get_object_vars() untuk menukar objek kepada tatasusunan dan gunakan (object) penukaran jenis untuk menukar tatasusunan kepada objek. Penukaran jenis ini sangat praktikal dan boleh digunakan dalam banyak projek. Jika anda perlu menukar objek dan tatasusunan dalam PHP, kaedah ini akan membantu anda.

Atas ialah kandungan terperinci Bincangkan penukaran jenis antara objek dan tatasusunan dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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