Example #1
0
--TEST--
JsonProcessor test #10: Serialize
--FILE--
<?php 
use php\format\JsonProcessor;
use php\lib\items;
$json = new JsonProcessor();
$json->onSerialize('object', function ($val) {
    return items::toArray((array) $val);
});
// ignoring int handler
$obj = new stdClass();
$obj->x = 10;
$obj->y = 20;
$obj->obj = new stdClass();
echo $json->format($obj);
?>
--EXPECTF--
[10,20,{}]
Example #2
0
--TEST--
JsonProcessor test #8: Serialize
--FILE--
<?php 
use php\format\JsonProcessor;
$json = new JsonProcessor();
$json->onSerialize('int', function ($val) {
    return "int:" . $val;
});
echo $json->format([1, 2]), "\n";
$json->onSerialize('int', null);
echo $json->format([1, 2]), "\n";
?>
--EXPECTF--
["int:1","int:2"]
[1,2]
Example #3
0
--TEST--
JsonProcessor test #9: Serialize
--FILE--
<?php 
use php\format\JsonProcessor;
$json = new JsonProcessor();
$json->onSerialize('int', function ($val) {
    return "int:" . $val;
});
$json->onSerialize('array', function ($val) {
    return $val;
});
// ignoring int handler
echo $json->format([1, 2]);
?>
--EXPECTF--
[1,2]
Example #4
0
--TEST--
JsonProcessor test #7: Serialize
--FILE--
<?php 
use php\format\JsonProcessor;
$json = new JsonProcessor();
$json->onSerialize('int', function ($val) {
    return "int:" . $val;
});
$json->onSerialize('float', function ($val) {
    return "float:" . $val;
});
$json->onSerialize('bool', function ($val) {
    return "bool:" . (int) $val;
});
$json->onSerialize('null', function ($val) {
    return "empty:" . $val;
});
$json->onSerialize('string', function ($val) {
    return "str:'" . $val . "'";
});
var_dump($json->format(1));
var_dump($json->format(1.1));
var_dump($json->format(true));
var_dump($json->format(false));
var_dump($json->format(null));
var_dump($json->format('foobar'));
?>
--EXPECTF--
string(7) ""int:1""
string(11) ""float:1.1""