无论$var我尝试给予什么异国情调json_encode($var),它永远不会失败。它甚至以某种方式反序列化一些对象。我正在寻找一个测试用例,其中 PHP 发现了一些不可序列化的 json(如果存在)。任何人都知道任何输入在哪里。$var本身不会是一个错误,但是json_encode($var)失败?(抛出异常,触发警告等)?
1 回答
跃然一笑
TA贡献1826条经验 获得超6个赞
导致实际失败的数据类型并不多json_encode,但您可以通过检查结果是否为 (boolean) false(使用严格比较)或通过json_encode抛出异常(自 PHP 7.3.0 起可用)来验证失败。
资源将失败,因为它们不能被类型转换为任何有意义的东西。
<?php
//Valid
var_dump(json_encode('Just a string'));
//Valid
var_dump(json_encode(['an array']));
//Valid
var_dump(json_encode(null));
//Valid
var_dump(json_encode((new stdClass)));
//Invalid - returns false from json_encode
var_dump(json_encode(curl_init()));
//Invalid - Throws an JsonException since PHP 7.3.0
var_dump(json_encode(curl_init(), JSON_THROW_ON_ERROR));
- 1 回答
- 0 关注
- 71 浏览
添加回答
举报
0/150
提交
取消