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

Bagaimana untuk menukar tatasusunan menjadi objek dalam php

PHPz
Lepaskan: 2023-05-19 09:06:07
asal
1628 orang telah melayarinya

Dalam PHP, tatasusunan dan objek ialah dua jenis data biasa, dan setiap jenis data mempunyai kegunaan dan hadnya sendiri. Kadangkala, adalah perlu untuk menukar antara dua jenis data ini. Artikel ini akan membincangkan cara menukar tatasusunan kepada objek.

Dalam PHP, anda boleh menggunakan penukaran jenis atau sintaks hantar untuk menukar tatasusunan kepada objek. Berikut ialah dua kaedah biasa:

Kaedah 1: Gunakan penukaran hantaran (objek)

Dalam PHP, anda boleh menggunakan sintaks hantaran (objek) untuk menukar tatasusunan kepada objek. Contohnya:

$arr = array('name' => 'Tom', 'age' => 20);
$obj = (object) $arr;
Salin selepas log masuk

Kod di atas menukar tatasusunan $arr menjadi objek $obj.

Perlu diambil perhatian bahawa apabila menggunakan sintaks cast (objek), nama kunci tatasusunan menjadi nama atribut objek, dan nilai kunci tatasusunan menjadi nilai atribut objek. Jika tatasusunan asal mengandungi tatasusunan berbilang dimensi, ia akan ditukar menjadi objek bersarang.

Contohnya:

$arr = array(
   'name' => 'Tom',
   'age' => 20,
   'contact' => array(
      'email' => 'tom@example.com',
      'phone' => '1234567890'
   )
);

$obj = (object) $arr;
Salin selepas log masuk

Dalam kod di atas, objek $obj mengandungi semua data dalam tatasusunan $arr dan tatasusunan kenalan ditukar menjadi objek bersarang.

Kaedah 2: Gunakan fungsi json_decode()

Selain menggunakan sintaks cast, anda juga boleh menggunakan fungsi json_decode() untuk menukar tatasusunan kepada objek.

Pertama, anda perlu menukar tatasusunan kepada rentetan dalam format JSON, dan kemudian gunakan fungsi json_decode() untuk menukarnya menjadi objek. Contohnya:

$arr = array('name' => 'Tom', 'age' => 20);
$json = json_encode($arr);
$obj = json_decode($json);
Salin selepas log masuk

Dalam kod di atas, pembolehubah $json mengandungi rentetan JSON yang ditukar daripada tatasusunan $arr dan pembolehubah $obj ialah objek yang ditukar daripada rentetan $json melalui fungsi json_decode() .

Perlu diambil perhatian bahawa apabila menggunakan fungsi json_decode() untuk menukar, secara lalai, objek yang dikembalikan ialah objek stdClass, bukan kelas tersuai. Jika anda ingin menukarnya kepada kelas tersuai, anda boleh menghantar parameter tambahan kepada fungsi json_decode().

Contohnya:

class Person {
   public $name;
   public $age;
}

$arr = array('name' => 'Tom', 'age' => 20);
$json = json_encode($arr);
$obj = json_decode($json, false, 512, JSON_OBJECT_AS_ARRAY);
$obj = (object) $obj;

$person = new Person();
$person->name = $obj->name;
$person->age = $obj->age;
Salin selepas log masuk

Dalam kod di atas, parameter JSON_OBJECT_AS_ARRAY digunakan untuk memberitahu fungsi json_decode() untuk mengembalikan tatasusunan dan bukannya objek stdClass. Kemudian, gunakan sintaks cast untuk menukar tatasusunan kepada objek.

Akhir sekali, kita boleh membuat instantiate objek Person dengan memberikan nilai sifat kepada pembolehubah ahli kelas tersuai.

Ringkasan

Artikel ini memperkenalkan dua kaedah biasa untuk menukar tatasusunan kepada objek dalam PHP: menggunakan sintaks cast dan menggunakan fungsi json_decode(). Tidak kira kaedah yang digunakan, anda boleh menukar antara tatasusunan dan objek dengan mudah untuk memenuhi keperluan senario yang berbeza.

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