1--TEST-- 2json_encode() with JSON_PRETTY_PRINT on declared properties 3--FILE-- 4<?php 5class MyClass { 6 public $x; 7 public $y; 8 public function __construct($x = 123, $y = []) { 9 $this->x = $x; 10 $this->y = $y; 11 } 12} 13 14class HasNoProperties {} 15 16echo json_encode(new HasNoProperties()), "\n"; 17echo json_encode(new HasNoProperties(), JSON_PRETTY_PRINT), "\n"; 18 19echo json_encode(new MyClass()), "\n"; 20echo json_encode(new MyClass(), JSON_PRETTY_PRINT), "\n"; 21$obj = new MyClass(); 22$obj->dynamic = new MyClass(null, []); 23echo json_encode($obj), "\n"; 24echo json_encode($obj, JSON_PRETTY_PRINT), "\n"; 25$obj = new MyClass(); 26unset($obj->y); 27echo json_encode($obj), "\n"; 28echo json_encode($obj, JSON_PRETTY_PRINT), "\n"; 29unset($obj->x); 30echo json_encode($obj), "\n"; 31echo json_encode($obj, JSON_PRETTY_PRINT), "\n"; 32?> 33--EXPECT-- 34{} 35{} 36{"x":123,"y":[]} 37{ 38 "x": 123, 39 "y": [] 40} 41{"x":123,"y":[],"dynamic":{"x":null,"y":[]}} 42{ 43 "x": 123, 44 "y": [], 45 "dynamic": { 46 "x": null, 47 "y": [] 48 } 49} 50{"x":123} 51{ 52 "x": 123 53} 54{} 55{}