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

Bagaimana untuk menukar tatasusunan PHP kepada objek

PHPz
PHPzasal
2023-04-26 14:22:53870semak imbas

Tatasusunan dan objek ialah jenis data yang biasa digunakan dalam PHP, dan kedua-duanya boleh menyimpan berbilang nilai. Walau bagaimanapun, apabila ia datang kepada pengaturcaraan berorientasikan objek, objek biasanya lebih disukai. Dalam PHP, anda boleh mencipta objek kosong dengan menggunakan kelas stdClass dan kemudian menukar tatasusunan kepada objek. Dalam artikel ini, kita akan meneroka cara menukar tatasusunan PHP kepada objek dan cara mengakses elemen tatasusunan dalam objek.

1. Cipta objek stdClass

stdClass ialah kelas terbina dalam PHP yang digunakan untuk mencipta objek kosong. Anda boleh menukar tatasusunan menjadi objek dengan mudah dengan menukar elemen tatasusunan kepada sifat objek. Berikut ialah contoh kod untuk mencipta objek stdClass:

$obj = new stdClass();

2 Menukar tatasusunan kepada objek

Dalam PHP, menukar tatasusunan kepada objek adalah sangat mudah. Tatasusunan boleh ditukar kepada objek menggunakan operator penukaran jenis (objek). Berikut ialah contoh kod:

//定义一个数组
$array = array('name' => 'example', 'age' => 20, 'address' => 'Beijing');
//将数组转换为对象
$obj = (object) $array;

Dalam kod ini, kami mula-mula mentakrifkan tatasusunan $array, yang mengandungi tiga pasangan nilai kunci: nama, umur dan alamat. Kemudian, gunakan operator (objek) untuk menukarnya kepada objek $obj.

Sekarang, mari kita lihat perbezaan antara tatasusunan dan objek. Pertama, sintaks untuk mengakses elemen tatasusunan ialah $array['key'], manakala sintaks untuk mengakses sifat objek ialah $obj -> Oleh itu, dalam contoh di atas, kita boleh menggunakan kod berikut untuk mengakses sifat objek:

echo $obj -> name; // 输出 'example'
echo $obj -> age; // 输出 '20'
echo $obj -> address; // 输出 'Beijing'

3. Akses elemen tatasusunan dalam objek

Selepas menukar tatasusunan kepada objek, kita boleh Akses elemen dalam tatasusunan melalui nama harta objek. Sebagai contoh, katakan kita mempunyai tatasusunan berikut:

$arr = array('foo', 'bar', 'baz');

Kemudian, kita menukarnya kepada objek:

$obj = (object) $arr;

Sekarang, mengakses sifat objek $obj -> 0 tidak mengembalikan tatasusunan Elemen pertama dalam 'foo'. Ini kerana nama atribut adalah daripada jenis rentetan, dan dalam PHP, nama atribut mestilah pengecam yang sah. Oleh itu, {} boleh digunakan untuk mengakses nama harta dengan aksara haram. Sebagai contoh, untuk mengakses elemen pertama dalam tatasusunan, anda boleh menggunakan sintaks berikut:

echo $obj->{'0'}; // 输出 'foo'

Ambil perhatian bahawa nama sifat mesti disertakan dalam kurungan kerinting dan disertakan dalam petikan.

4. Tukar objek kepada tatasusunan

Menukar objek kepada tatasusunan juga sangat mudah. Gunakan operator (tatasusunan) untuk menukar objek kepada tatasusunan. Berikut ialah contoh kod:

$array = (array) $obj;

Dalam kod ini, kami menggunakan operator (array) untuk menukar objek $obj kepada array $array.

5. Contoh kod

Berikut ialah contoh kod lengkap yang menunjukkan cara menukar tatasusunan PHP kepada objek:

 'example', 'age' => 20, 'address' => 'Beijing');
//创建空对象
$obj = new stdClass();
//将数组转换为对象
$obj = (object) $array;

//输出对象属性
echo $obj -> name; // 输出 'example'
echo $obj -> age; // 输出 '20'
echo $obj -> address; // 输出 'Beijing'

//访问对象属性
echo $obj->{'name'}; // 输出 'example'
echo $obj->{'age'}; // 输出 '20'
echo $obj->{'address'}; // 输出 'Beijing'

//将对象转换为数组
$array = (array) $obj;
print_r($array);
?>

Kod di atas mula-mula mencipta Tatasusunan $array elemen, kemudian buat objek kosong $obj dan tukar tatasusunan kepada objek. Kemudian keluarkan sifat objek dan akses sifat objek masing-masing, dan akhirnya menukar objek kepada tatasusunan dan keluarkan tatasusunan.

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