PDA

View Full Version : تبدیل متغیر به رشته



arenaw
سه شنبه 23 تیر 1394, 12:49 عصر
سلام.
وقتی که با json یک array و یک object از نوع stdclass که دیتای مشابهی داخلشونه رو encode میکنی، هیچ فرقی با هم ندارن متن خروجیشون، و موقع decode کردن، همرو array بر میگردونه.
حالا من میخوام یه سری array و stdclass و string معمولی که توی برنامم هر بار محاسبه میشن رو توی دیتابیس بریزم و مستقیما از اونجا بخونم. اما نیاز به یک سیستم استاندارد برای این کار دارم که خودش موقع encode کردن variable، نوعش رو هم توی خروجی ذکر کنه که موقع decode کردن، variable رو با همون نوع برگردونه.

ممنون از عزیزانی که جواب میدن.

-سیّد-
چهارشنبه 31 تیر 1394, 08:44 صبح
سلام
برای این کار می‌تونید به جای json از تابع serialize استفاده کنید، که نوع متغیر رو ذخیره می‌کنه. تفاوتش با json اینه که json یه فرمت استاندارد هست که پیاده‌سازیش توی php هم هست، و در نتیجه باید php یه mapping بین داده‌های json و انواع داده‌های php برقرار کنه، برای همین هم وقتی یه stdclass رو encode می‌کنین و بعد decode می‌کنین به آرایه تبدیل می‌شه. ولی serialize مخصوص خود php هست و نوع متغیر رو داخلش می‌ذاره که وقتی unserialize اش می‌کنین عین همون متغیر برگردونده می‌شه.
البته یه نکته اینجا هست و اون این که متغیرهای نوع resource قابلیت تبدیل به string (و برگردونده شدن از روی string) رو ندارن، برای همین نه می‌شه به json تبدیلشون کرد، نه می‌شه serialize شون کرد. بنابراین اگه مثلاً یه شیء دارید که توش یه connection به پایگاه داده دارید، بعد از این که unserialize کردید، باید دوباره connection رو خودتون بسازید.