تبدیل object به array در زبان PHP
۱۱ شهریور ۱۳۹۹
یکی از ساختارهای دادهای که در classهای برنامههای PHP تعریف میشود، object است و بعضی افراد object را instance هم مینامند. بهطور کلی ما یک بار class را تعریف کرده و سپس تعداد زیادی object میسازیم که به آن class تعلق دارند. یکی از ساختارهای دادهای که یک یا چند نوع از مقادیر مشابه را با یک نام ذخیره میکند، array نام دارد اما associative array در PHP، با array متفاوت است. از associative arrayها برای ذخیره مقادیر به صورت key-value استفاده میشود. ما در این مقاله یاد خواهیم گرفت که چگونه در زبان PHP یک object را به array تبدیل کنیم. مواردی که در ادامه به آنها خواهیم پرداخت به شرح زیر هستند:
- چگونگی تبدیل object به array در زبان PHP
- استفاده از توابع Json Decode و Json Encode
چگونگی تبدیل object به array در زبان PHP
این کار را در برنامهنویسی با عنوان type casting یا به عبارتی، تغییر نوع ساختار داده میشناسند و البته در هر زبان، قوانین و سینتکس خاص خود را دارد.
با کد زیر در زبان PHP میتوانید یک object را به array تبدیل کنید:
$Array_var = (array) $Obj;
کدهای زیر یک مثال کلیتر برای نشان دادن type casting در زبان PHP هستند:
<?php
class hotel
{
var $item1;
var $item2;
var $item3;
function __construct( $food1, $food2, $food3)
{
$this->item1 = $food1;
$this->item2 = $food2;
$this->item3 = $food3;
}
}
// Create object for class(hotel)
$food = new hotel("biriyani", "burger", "pizza");
echo "Before conversion : ";
echo "<br>";
var_dump($food);
echo "<br>";
// Coverting object to an array
$foodArray = (array)$food;
echo "After conversion :";
var_dump($foodArray);
?>
استفاده از توابع Json Decode و Json Encode
رشته encode شده JSON را میتوان توسط تابع json_decode
به متغیرهای PHP تبدیل کرد و عکس همین موضوع هم صادق است یعنی با تابع json_encode
میتوانیم متغیرها را به JSON تبدیل کنیم.
$Array_var = json_decode(json_encode($obj), true);
مثال کاملتر:
<?php
class hotel
{
var $var1;
var $var2;
function __construct( $bill, $food )
{
$this->var1 = $bill;
$this->var2 = $food;
}
}
// Creating object
$food = new hotel(500, "biriyani");
echo "Before conversion:";
echo "<br>";
var_dump($food);
echo "<br>";
// Converting object to associative array
$foodArray = json_decode(json_encode($food), true);
echo "After conversion:";
var_dump($foodArray);
?>
منبع: https://www.edureka.co/blog/convert-object-to-array-in-php
توسعهدهندگان دربارهی ما چه میگویند
تجربه کار باliara_cloud@امروز خیلی خوب بود. یکی از سرویس هام رو منتقل کردم روش و راضیم. انقد سریع و جذاب کارم راه افتادم اصن باورم نمیشد! برعکس سرویس های PaaS دیگه با اون همه پیچیدگیشون. دمتون گرم
...
MohammadReza
keikaavousi
بعد از بسته شدن @fandoghpaas و ناراحتی همهمون از اینکه یه سرویس خوب و صادق نمیتونه از پس هزینهها بر بیاد، سرویسم رو منتقل کردم به پاس لیارا (https://liara.ir @liara_cloud) . تجربه راحت و خوب. تفاوتهایی داشت که کمی کار میخواست ولی تا الان کاملا راضی.
jadi
jadi
یه خسته نباشید باید به تصمیمliara_cloud@بگم،
بعد از چندین روز سرکله زدن با سرویس های مشابه بالاخره تصمیم گرفتم لیارا رو امتحان کنم و باور نمیشه ۱۰ دقیقه بیشتر وقت نبرد،
دمتون گرم.
Arch
EbadiDev
واسه سرویس PaaS با اختلاف لیارا بهترین رابط کاربری داره و یکی از مزیتهای سرویس دیتابیسشون اینه که خودشون به صورت دورهای بکآپ میگیرن.
...
Ali Najafi
me_ali_najafi
یکی از کارهای خوبی که جدیداً میکنم اینه که یه دیتابیس روی لیارا میسازم و به پروژه وصل میکنم اینطوری هم خونه و هم محل کار دیتابیس بروز رو دارم و راحت میتونم ادامه بدم کار روliara_cloud@
Navid
1navid
عاشقliara_cloud@شدم درسته در حد AWS نیست ولی خب تجربه خوبی واسه پروژه های داخل ایران ارائه میده، میتونم رو CD هم اجراش کنم
Amir H Shekari
vanenshi