मेथड __serialize
जादुई मेथड __serialize ऑब्जेक्ट के सीरियलाइजेशन के दौरान कॉल किया जाता है
फंक्शन serialize द्वारा। इसे डेटा का एक ऐरे वापस करना चाहिए, जो
सीरियलाइज़ किया जाएगा। यह मेथड PHP 7.4 में एक विकल्प के रूप में दिखाई दिया
मेथड __sleep सीरियलाइजेशन प्रक्रिया के अधिक लचीले प्रबंधन के साथ।
सिंटैक्स
public function __serialize(): array
उदाहरण
आइए __serialize मेथड के साथ एक क्लास बनाएं, जो परिभाषित करेगा,
ऑब्जेक्ट के किन गुणों को सीरियलाइज़ करने की आवश्यकता है:
<?php
class User {
public $name;
private $password;
public $email;
public function __construct($name, $password, $email) {
$this->name = $name;
$this->password = $password;
$this->email = $email;
}
public function __serialize(): array {
return [
'name' => $this->name,
'email' => $this->email,
'hash' => md5($this->password)
];
}
}
$user = new User('John', 'secret123', 'john@example.com');
echo serialize($user);
?>
कोड निष्पादन का परिणाम:
'O:4:"User":3:{s:4:"name";s:4:"John";s:5:"email";s:15:"john@example.com";s:4:"hash";s:32:"e5e9fa1ba31ecd1ae84f75caaa474f3a";}'
उदाहरण
आइए __serialize और __sleep के बीच का अंतर प्रदर्शित करें:
<?php
class Product {
public $id;
protected $price;
private $discount;
public function __sleep() {
return ['id', 'price'];
}
public function __serialize(): array {
return [
'id' => $this->id,
'price' => $this->price * (1 - $this->discount)
];
}
}
$product = new Product();
$product->id = 100;
$product->price = 50;
$product->discount = 0.1;
echo "Sleep: " . serialize($product) . "\n";
echo "Serialize: " . serialize($product);
?>
कोड निष्पादन का परिणाम:
'Sleep: O:7:"Product":2:{s:2:"id";i:100;s:5:"price";i:50;}'
'Serialize: O:7:"Product":2:{s:2:"id";i:100;s:5:"price";d:45;}'
यह भी देखें
-
फंक्शन
serialize,
जो एक वैल्यू को स्टोरेज स्ट्रिंग में कनवर्ट करता है