Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP json_encode-是否有任何输入导致此抛出错误?_Php_Json - Fatal编程技术网

PHP json_encode-是否有任何输入导致此抛出错误?

PHP json_encode-是否有任何输入导致此抛出错误?,php,json,Php,Json,无论我尝试给json\u encode($var),它都不会失败。它甚至以某种方式反序列化了一些对象 我正在寻找一个测试用例,其中PHP发现一些不可json序列化的东西(如果存在的话)。任何人都知道任何输入在哪里 $var 这本身不是一个错误,但是 json_encode($var) 失败?(引发异常、触发警告等)?导致json\u encode实际失败的数据类型并不多,但您可以通过检查结果是否为(布尔值)false(严格比较)或让json\u encode引发异常(自PHP 7.3.0起可用

无论我尝试给
json\u encode($var)
,它都不会失败。它甚至以某种方式反序列化了一些对象

我正在寻找一个测试用例,其中PHP发现一些不可json序列化的东西(如果存在的话)。任何人都知道任何输入在哪里

$var

这本身不是一个错误,但是

json_encode($var)

失败?(引发异常、触发警告等)?

导致
json\u encode
实际失败的数据类型并不多,但您可以通过检查结果是否为(布尔值)false(严格比较)或让
json\u 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));
来自docs的
:“成功时返回JSON编码的字符串,失败时返回FALSE。”因此,它将返回FALSE,而不是exception。curl_init()正是我想要的,谢谢