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

Bagaimana untuk menukar tatasusunan menjadi objek dalam php

PHPz
PHPzasal
2023-05-19 09:06:071591semak imbas

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;

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;

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);

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;

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!

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