要创建一个空的JSON对象,我通常使用:
json_encode((object) null);
将null强制转换为对象有效,但是此解决方案是否还有其他更好的方法和/或任何问题?
该文档指定(object) null将导致一个空的对象,因此可能有人说您的代码有效,这是使用的方法。
(object) null
PHP:对象-手册 如果将任何其他类型的值转换为对象,则将创建stdClass内置类的新实例。如果值为NULL,则新实例将为空。
PHP:对象-手册
如果将任何其他类型的值转换为对象,则将创建stdClass内置类的新实例。如果值为NULL,则新实例将为空。
尽管您永远都不知道上面的内容何时/是否会更改,因此,如果您想100%地确定自己总是会以{}编码数据结尾,则可以使用以下方法:
{}
json_encode (json_decode ("{}"));
即使这很繁琐又丑陋,我还是假设/希望json_encode / json_decode与彼此兼容,并且总是将以下内容评估为真:
$a = <something>; $a === json_decode (json_encode ($a));
json_decode ("{}")将返回stdClass默认值,因此应将以下内容视为安全方法。但是,正如所提到的,它几乎和做相同(object) null。
json_decode ("{}")
stdClass
json_encode (new stdClass);