آنچه در این مقاله میخوانید
تبدیل object به array در زبان PHP
۱۱ شهریور ۱۳۹۹
در برنامهنویسی با زبان PHP، اغلب با ساختارهای دادهای مختلفی سروکار داریم که هرکدام برای هدف خاصی طراحی شدهاند. دو مورد از این ساختارها که بهطور گسترده مورد استفاده قرار میگیرند، objectها و آرایهها (arrays) هستند.
object، نمونهای از یک class است که دادهها و رفتارهایی را در قالب یک واحد منطقی نگه میدارد. از سوی دیگر، آرایهها ابزار سادهتری برای ذخیرهسازی مجموعهای از مقادیر هستند. بهویژه آرایههای انجمنی (associative arrays) که امکان نگهداری دادهها را بهصورت کلید-مقدار (key-value) فراهم میکنند، در بسیاری از کاربردهای روزمره مانند پردازش فرمها یا ارتباط با پایگاه داده بسیار کاربرد دارند.
گاهی در روند توسعه، لازم میشود دادههای موجود در یک object را به آرایه تبدیل کنیم تا راحتتر قابل استفاده، ذخیرهسازی یا انتقال باشند. PHP برای این کار، روشهای مختلفی ارائه میدهد که هرکدام ویژگیها و کاربردهای خاص خود را دارند.
در ادامه خواهید خواند:
- چگونگی تبدیل object به array در زبان PHP
- استفاده از توابع Json Decode و Json Encode
- جمع بندی

چگونگی تبدیل object به array در زبان PHP
این فرایند در برنامهنویسی با عنوان type casting یا تغییر نوع داده (type conversion) شناخته میشود. در هر زبان برنامهنویسی، این عملیات قواعد و سینتکس خاص خود را دارد. در PHP نیز میتوان با استفاده از type casting، یک object را مستقیماً به یک array تبدیل کرد.
برای انجام این کار، کافی است object مورد نظر را با استفاده از عملگر (array)
به آرایه تبدیل کنید:
$Array_var = (array) $Obj;
کدهای زیر یک مثال کلیتر برای نشان دادن type casting در زبان PHP هستند:
<?php
class Hotel {
public $item1;
public $item2;
public $item3;
public function __construct($food1, $food2, $food3) {
$this->item1 = $food1;
$this->item2 = $food2;
$this->item3 = $food3;
}
}
$food = new Hotel("biriyani", "burger", "pizza");
echo "Before conversion:<br>";
var_dump($food);
echo "<br>";
$foodArray = (array) $food;
echo "After conversion:<br>";
var_dump($foodArray);
?>
در این روش، فقط ویژگیهای public به شکل قابل فهم در آرایه نمایش داده میشوند. اگر ویژگیهایی از نوع protected یا private وجود داشته باشد، کلیدهای آنها در آرایه شامل کاراکترهای خاصی مانند "\0*\0"
خواهند بود که نشاندهنده سطح دسترسی آنهاست.
با هاست PHP لیارا، وبسایت خود را با سرعت بالا و امنیت قوی مدیریت کنید.
✅ نصب آسان ✅ پشتیبانی از نسخههای جدید PHP ✅ آپتایم بالا
خرید هاست PHP
استفاده از توابع Json Decode و Json Encode
در PHP، میتوان با استفاده از تابع json_encode
یک object را به رشتهی JSON تبدیل کرد و سپس با json_decode
، آن را به یک آرایه انجمنی (associative array) تبدیل نمود. این روش برای objectهای ساده که فقط شامل ویژگیهای public
هستند، بسیار کاربردی است.
ساختار کلی این تبدیل به شکل زیر است:
$Array_var = json_decode(json_encode($obj), true);
مثال کاملتر:
<?php
class Hotel {
public $var1;
public $var2;
public function __construct($bill, $food) {
$this->var1 = $bill;
$this->var2 = $food;
}
}
$food = new Hotel(500, "biriyani");
echo "Before conversion:<br>";
var_dump($food);
echo "<br>";
$foodArray = json_decode(json_encode($food), true);
echo "After conversion:<br>";
var_dump($foodArray);
?>
- این روش فقط ویژگیهای
public
object را در نظر میگیرد. ویژگیهایprivate
وprotected
در فرآیندjson_encode
نادیده گرفته میشوند. - اگر object شامل دادههایی مانند
resource
یا closure باشد، این روش مناسب نیست و ممکن است منجر به خطا یا دادهی ناقص شود. - استفاده از گزینهی
true
درjson_decode
باعث میشود خروجی به جای object، به صورت آرایه انجمنی برگردد.
معرفی هاست رایگان PHP
هاست PHP
جمع بندی
تبدیل object به array در PHP یکی از کارهای متداول برای سادهسازی فرایند پردازش، ذخیرهسازی یا انتقال دادههاست. بسته به نیاز، میتوان از روشهای مختلفی استفاده کرد. Type casting روشی سریع و مستقیم است که تمام ویژگیها را به آرایه تبدیل میکند، هرچند برای ویژگیهای private و protected ممکن است ساختار کلیدها پیچیده شود.
استفاده از json_encode
و json_decode
خروجی تمیزتری ارائه میدهد و دادهها را به آرایه انجمنی تبدیل میکند، اما فقط ویژگیهای public را پوشش میدهد. همچنین در شرایطی که فقط به ویژگیهای public نیاز داریم، تابع get_object_vars
سادهترین گزینه است. انتخاب روش مناسب به ساختار object و هدف شما از تبدیل بستگی دارد.
منبع: https://www.edureka.co/blog/convert-object-to-array-in-php