Masalah munculnya error “cannot use object of type stdclass as array” di PHP biasanya disebabkan karena ada kode yang mencoba untuk mengakses variabel yang merupakan tipe objek sebagai array. Hal ini kemungkinan besar Anda telah mencoba mengakses data array braket generik dan bukan operator objek.
Pada artikel ini, kami akan memberikan tips kepada Anda, bagaimana cara mengatasi masalah cannot use object of type stdclass as array di PHP, berikut adalah solusinya :
1. Perbaiki Kode Operator Objek Yang Sama
Dengan menggunakan kode yang sama saat menggunakan operator objek , maka dari itu dengan mengakses nilai tidak akan menimbulkan terjadinya error.
Contoh Kode :
$object = new stdClass();
$object->myFirstProperty = 'My First Value';
$object->mySecondProperty = 'My Second Value';
$object->myThirdProperty = 'My Third Value';
$object->myFourthProperty = 'My Fourth Value';
//echo $object["myFirstProperty"];
echo $object->myFirstProperty;
Hasil (Output)
My First Value
Ada dua pilihan untuk menyelesaikan masalah kesalahan ini :
- Pertama akses nilai dengan operator objek seperti yang ditunjukkan pada Contoh Kode diatas.
- Kedua Anda dapat mengkonversikan objek ke array sebelum mengaksesnya dengan sintaks array (Contoh di bawah) :
$object=newstdClass();
$object->myFirstProperty='My First Value';
$object->mySecondProperty='My Second Value';
$object->myThirdProperty='My Third Value';
$object->myFourthProperty='My Fourth Value';
$array=json_decode(json_encode($object),true);
echo$array["myFirstProperty"];
2. Ubah Kode Menjadi Array
Solusi kedua ini adalah mengubah kode PHP Anda menjadi array, untuk contoh
$database['output']
Ubah Menjadi :
$database->output
Jika Anda menggunakan JSON, bisa juga ubah kode menjadi :
$output = json_decode($database,true)