И ещё одна довольно интересная штука, попавшая в транк PHP. На этот раз речь о json_encode. Как известно, он отлично работает с массивами и даже работает с объектами. Вот с объектами как раз тут не всё так просто: возможно необходимо сделать какую-то предварительную обработку или выкинуть часть свойств.
В последнем коде можно сделать так:
class MyObject implements JsonSerializable { private $test1, $test2; public $x = 10; function __construct($test1, $test2) { $this->test1 = $test1; $this->test2 = $test2; } // json_encode будет работать с результатом этого метода function jsonSerialize(){ return array($this->x, $this->test1); } }