Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menukar tatasusunan kepada objek dalam php

Bagaimana untuk menukar tatasusunan kepada objek dalam php

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

Dalam pengaturcaraan PHP, kadangkala anda perlu menukar tatasusunan kepada objek, kerana objek lebih mudah untuk operasi dan penyimpanan data. Dalam artikel ini, kita akan meneroka cara menukar tatasusunan kepada objek dan cara menukar antara keduanya.

Tukar tatasusunan kepada objek

Dalam PHP, terdapat banyak cara untuk menukar tatasusunan kepada objek, kami akan memperkenalkan kaedah ini satu persatu di bawah.

Kaedah 1: Paksa tatasusunan menjadi objek

Dalam PHP, anda boleh menggunakan sintaks berikut untuk menukar tatasusunan kepada objek.

$obj = (object) $array;

Dalam pernyataan ini, kami menghantar $array ke objek dan menetapkannya kepada $obj.

Perlu diambil perhatian bahawa kaedah ini hanya memberikan nilai dalam tatasusunan kepada sifat dalam objek dan tidak boleh melakukan sebarang operasi pada objek.

Kaedah 2: Gunakan kelas stdClass untuk membuat instantiate objek

Dalam PHP, anda boleh menggunakan kelas stdClass untuk mencipta objek kosong baharu, dan kemudian tetapkan nilai dalam tatasusunan kepada sifat-sifat objek. Kod khusus adalah seperti berikut.

$obj = new stdClass();
foreach($array as $key => $value){
    $obj->$key = $value;
}

Dalam kod ini, kami menggunakan fungsi foreach() untuk melintasi tatasusunan, dan kemudian menggunakan $obj->$key untuk mengakses sifat dalam objek dan menetapkannya kepada nilai ​​dalam tatasusunan.

Kaedah 3: Gunakan fungsi json_decode()

Dalam PHP, kita juga boleh menggunakan fungsi json_decode() untuk menukar tatasusunan kepada objek. Kod khusus adalah seperti berikut.

$jsonStr = json_encode($array);
$obj = json_decode($jsonStr);

Dalam kod ini, kami menggunakan fungsi json_encode() untuk menukar tatasusunan kepada rentetan json, dan kemudian gunakan fungsi json_decode() untuk menukar rentetan json kepada objek.

Perlu diambil perhatian bahawa kaedah ini hanya terpakai apabila nilai dalam tatasusunan adalah jenis asas dan tidak digunakan pada tatasusunan bersekutu atau tatasusunan bersarang.

Tukar objek kepada tatasusunan

Apabila kita perlu menukar objek kepada tatasusunan, PHP menyediakan dua kaedah: (1) gunakan fungsi get_object_vars() (2) gunakan jenis casting.

Kaedah 1: Gunakan fungsi get_object_vars()

Dalam PHP, kita boleh menggunakan fungsi get_object_vars() untuk mendapatkan semua atribut dan nilai objek dan menukarnya menjadi tatasusunan . Kod khusus adalah seperti berikut.

$arr = get_object_vars($obj);

Dalam kod ini, $obj ialah objek, $arr ialah tatasusunan, mengandungi semua sifat dan nilai ​​​​dalam $obj.

Kaedah 2: Gunakan pemutus jenis

Dalam PHP, kita boleh terus menggunakan pemutus jenis untuk menukar objek kepada tatasusunan. Kod khusus adalah seperti berikut.

$arr = (array) $obj;

Dalam kod ini, kami menggunakan (tatasusunan) untuk memaksa penukaran $obj kepada tatasusunan.

Perlu diingatkan bahawa kaedah ini mempunyai had, ia hanya boleh menukar sifat awam dalam objek kepada nilai dalam tatasusunan. Hartanah persendirian mahupun yang dilindungi tidak boleh ditukar dengan cara ini.

Kesimpulan

Dalam pengaturcaraan PHP, menukar tatasusunan kepada objek dan menukar objek kepada tatasusunan adalah operasi biasa. Dalam artikel ini, kami memperkenalkan cara menggunakan casting jenis, fungsi get_object_vars() dan fungsi json_decode() untuk mencapai operasi ini. Pada masa yang sama, pembaca juga diingatkan tentang skop kaedah yang berkenaan, serta batasan dan langkah berjaga-jaga kaedah tersebut. Semoga artikel ini dapat membantu pengaturcara PHP.

Atas ialah kandungan terperinci Bagaimana untuk menukar tatasusunan kepada objek 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