परिचय
Serializable इंटरफेस PHP लाइब्रेरी में एक क्लास बनाने के लिए मौजूद है जो कस्टमाइज़्ड सीरियलाइज़ेशन प्रदान करता है। PHP का serialize() फ़ंक्शन अधिकांश मानों को स्टोरेबल प्रतिनिधित्व में सीरियलाइज़ करने में सक्षम है। हालांकि, यूजर-डिफाइंड क्लास के ऑब्जेक्ट सीरियलाइज़ नहीं किए जा सकते। यह इंटरफेस इसे संभव बनाता है।
सिंटैक्स
Serializable {
/* Methods */
abstract public serialize ( void ) : string
abstract public unserialize ( string $serialized ) : void
}
मेथड्स
- Serializable::serialize - ऑब्जेक्ट का स्ट्रिंग प्रतिनिधित्व
- Serializable::unserialize - सीरियलाइज़्ड स्ट्रिंग प्रतिनिधित्व से ऑब्जेक्ट का निर्माण
बिल्ट-इन serialize() फ़ंक्शन एक मान का स्टोरेबल प्रतिनिधित्व उत्पन्न करता है:
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"
नोट: PHP 7.4+ में, __serialize() और __unserialize() मैजिक मेथड पसंदीदा हैं (Serializable इंटरफेस डिप्रिकेटेड नहीं है लेकिन नए मेथड अधिक लचीले हैं)।