示例#1
0
JsonProcessor test #11: Serialize
--FILE--
<?php 
use php\format\JsonProcessor;
use php\lib\items;
class Foo
{
    public $x = 10, $y = 20;
}
class Bar extends Foo
{
    public $z = 30;
}
$json = new JsonProcessor();
$json->onClassSerialize('Foo', function (Foo $val) {
    return "X:{$val->x}, Y:{$val->y}";
});
echo $json->format(new Foo()), "\n";
echo $json->format(new Bar()), "\n";
$json->onClassSerialize('Bar', function (Foo $val) {
    return "X:{$val->x}, Y:{$val->y}, Z:{$val->z}";
});
echo $json->format(new Bar()), "\n";
$json->onClassSerialize('Foo', null);
echo $json->format(new Foo()), "\n";
echo $json->format(new Bar()), "\n";
?>
--EXPECTF--
"X:10, Y:20"
"X:10, Y:20"
"X:10, Y:20, Z:30"