1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
|
--TEST--
Lazy objects: resetAsLazy*() can reset initialized proxy
--FILE--
<?php
class Obj {
public function __construct(
public string $name,
) {}
}
$r = new ReflectionClass(Obj::class);
$obj = new Obj('obj1');
var_dump($obj);
$r->resetAsLazyProxy($obj, function () {
return new Obj('obj2');
});
$r->initializeLazyObject($obj);
var_dump($obj);
$r->resetAsLazyProxy($obj, function () {
return new Obj('obj3');
});
var_dump($obj);
$r->initializeLazyObject($obj);
var_dump($obj);
?>
==DONE==
--EXPECTF--
object(Obj)#%d (1) {
["name"]=>
string(4) "obj1"
}
lazy proxy object(Obj)#%d (1) {
["instance"]=>
object(Obj)#%d (1) {
["name"]=>
string(4) "obj2"
}
}
lazy proxy object(Obj)#%d (0) {
["name"]=>
uninitialized(string)
}
lazy proxy object(Obj)#%d (1) {
["instance"]=>
object(Obj)#%d (1) {
["name"]=>
string(4) "obj3"
}
}
==DONE==
|