<?php
class MyClass {
var int $x;
function __construct(int $x) {
$this->x = $x;
}
}
class NewClass {
var int $y;
function __construct(int $y) {
$this->y = $y;
}
}
$obj1 = new MyClass(10);
$obj2 = new NewClass(20);
$sob1 = serialize($obj1);
$sob2 = serialize($obj2);
// default behaviour that accepts all classes
// second argument can be ommited.
// if allowed_classes is passed as false, unserialize converts all objects into __PHP_Incomplete_Class object
$usob1 = unserialize($sob1 , ["allowed_classes" => true]);
// converts all objects into __PHP_Incomplete_Class object except those of MyClass and NewClass
$usob2 = unserialize($sob2 , ["allowed_classes" => ["MyClass", "NewClass"]]);
echo $usob1->x . PHP_EOL;
echo $usob2->y . PHP_EOL;
?>