Alternatif olarak, PHP'nin json_encode ve json_decode gibi kodlama işlevlerinin gücünden yararlanabilirsiniz.
Bu eğitimde, bir diziyi tam olarak çalışan bir nesneye dönüştürmenin alternatif yöntemlerinden ikisi gösterilecektir.
Yöntem 1: Tür (nesne) ile Döküm
İlk yöntemde, diziye bir çekiçle sanal olarak vuruyoruz ve tipik bir dönüşümü zorladık. Öncelikle bir diziye ihtiyacımız olacak, önce ilişkisel bir veri dizisi tanımlayalım.
Dizi
$myArray = ["usersOnline" => 76, "registeredUsersOnline" => 21, "website" => "yazilim.net"];
Daha sonra, StdClass'a dönüştürmek için kafadaki değişkene sanal bir nesne çekiciyle vuruyoruz.
PHP Dönüşümü
$myStdClass = (object) $myArray;
var_dump($myStdClass);
Çıktı
object(stdClass)#1 (3) { ["usersOnline"]=> int(76) ["registeredUsersOnline"]=> int(21) ["website"]=> string(8) "yazilim.net" }
Bu dönüştürme, nesneye nesne yönelimli stil sözdizimi ile erişmemizi sağlar, örneğin -
echo $myStdClass->usersOnline; // outputs 76
Yöntem 2: Kodlama işlevlerini kullanarak dönüştürme
İkinci ve alternatif yöntemde, PHP'nin sahip olduğu JSON kodlama işlevlerini kullanacağız. Yine aynı basit diziyi kullanarak -
Dizi
$myArray = ["usersOnline" => 76, "registeredUsersOnline" => 21, "website" => "yazilim.net"];
Dizi ile önce json_encode ile bir JSON dizgesine ayrıştırıyoruz ve son olarak json_decode işlevi ile dizeyi çözüyoruz.
PHP Dönüşümü
$myStdClass = json_decode(json_encode($myArray));
var_dump($myStdClass);
Çıktı
object(stdClass)#1 (3) { ["usersOnline"]=> int(76) ["registeredUsersOnline"]=> int(21) ["website"]=> string(8) "yazilim.net" }
Ve yine, değerlere ilgili anahtarları aracılığıyla erişmek için nesne stili sözdizimini kullanabiliriz.
echo $myStdClass->website; // outputs codewall
Ve işte bu, bir diziyi tam olarak çalıştırılabilir bir StdClass nesnesine dönüştürmek için iki süper yol.