要创建一个空的 JSON 对象,我通常使用:
json_encode((object) null);
将 null 强制转换为对象是可行的,但是还有其他更好的方法和/或此解决方案有任何问题吗?
推荐方法
json_decode ("{}")
将返回一个stdClass
默认情况下,使用以下内容应被认为是安全/便携且正确的。
json_encode (new stdClass);
你的解决方案可以工作..
该文档指定(object) null
将导致一个空对象,因此有些人可能会说您的代码是有效的并且它是要使用的方法。
PHP:对象 - 手册
如果任何其他类型的值转换为对象,则会创建 stdClass 内置类的新实例。如果值为 NULL,则新实例将为空。
..但是,尽量保证它的安全!
虽然你永远不知道上述情况何时/是否会改变,所以如果你想 100% 确定你最终会得到一个{}
在编码数据中,您可以使用诸如以下的 hack:
$empty = json_decode ("{}");
$result = json_encode($empty); // "{}"
尽管它乏味且丑陋,但我确实假设/希望 json_encode/json_decode 彼此兼容,并且始终将以下内容评估为 true:
$a = <something>;
$a === json_decode (json_encode ($a));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)