ভূমিকা
Serializable ইন্টারফেস PHP লাইব্রেরিতে রয়েছে একটি ক্লাস বানাতে যা কাস্টোমাইজড সিরিয়ালাইজেশন প্রদান করে। PHP-এর serialize() ফাংশন অধিকাংশ মানকে স্টorable রিপ্রেজেন্টেশনে সিরিয়ালাইজ করতে পারে। তবে, ইউজার-ডিফাইনড ক্লাসের অবজেক্ট সিরিয়ালাইজ করা যায় না। এই ইন্টারফেস সেটি সম্ভব করে।
সিনট্যাক্স
Serializable { abstract public serialize ( void ) : string abstract public unserialize ( string $serialized ) : void }মেথড
Serializable::serialize — অবজেক্টের স্ট্রিং রিপ্রেজেন্টেশন
Serializable::unserialize — সিরিয়ালাইজড স্ট্রিং রিপ্রেজেন্টেশন থেকে অবজেক্ট কনস্ট্রাক্ট করা
বিল্ট-ইন serialize() ফাংশন একটি ভ্যালুর স্টorable রিপ্রেজেন্টেশন জেনারেট করে—
serialize ( mixed $value ) : string
unserialize() ফাংশন একটি সংরক্ষিত রিপ্রেজেন্টেশন থেকে PHP ভ্যালু তৈরি করে—
unserialize ( string $str [, array $options ] ) : mixed
Serializable উদাহরণ
নিচের উদাহরণে, একটি স্ট্রিং ভেরিয়েবল myclass-এর প্রাইভেট প্রপার্টি হিসেবে ব্যবহৃত হয়েছে। যখন বিল্ট-ইন serialize() ফাংশন এই ক্লাসের অবজেক্টকে আর্গুমেন্ট হিসেবে ব্যবহার করে, serialize() মেথড আটোমেটিক্যালি কল হয়। অনুরূপভাবে, unserialize() ফাংশন স্ট্রিং প্রাইভেট প্রপার্টি দিয়ে অবজেক্টটি রিকনস্ট্রাক্ট করে।
উদাহরণ
<?php class myclass implements Serializable { private $arr; public function __construct() { $this->arr = "TutorialsPoint India (p) Ltd"; } public function serialize() { echo "Serializing object..\n"; return serialize($this->arr); } public function unserialize($data) { echo "Unserializing object..\n"; $this->arr = unserialize($data); } public function getdata() { return $this->arr; } } $obj = new myclass; $serobj = serialize($obj); var_dump ($serobj); $obj1 = unserialize($serobj); var_dump($obj1->getdata()); ?>আউটপুট
উপরের প্রোগ্রাম নিচের আউটপুট দেখাবে—
Serializing object.. string(55) "C:7:\"myclass\":36:{s:28:\"TutorialsPoint India (p) Ltd\";}" Unserializing object.. string(28) "TutorialsPoint India (p) Ltd"