PHP json_encode - 是否有任何输入会引发错误?

无论$var我尝试给予什么异国情调json_encode($var),它永远不会失败。它甚至以某种方式反序列化一些对象。

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

$var

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

json_encode($var)

失败?(抛出异常,触发警告等)?


慕婉清6462132
浏览 77回答 1
1回答

跃然一笑

导致实际失败的数据类型并不多json_encode,但您可以通过检查结果是否为 (boolean) false(使用严格比较)或通过json_encode抛出异常(自 PHP 7.3.0 起可用)来验证失败。资源将失败,因为它们不能被类型转换为任何有意义的东西。<?php//Validvar_dump(json_encode('Just a string'));//Validvar_dump(json_encode(['an array']));//Valid&nbsp;var_dump(json_encode(null));//Validvar_dump(json_encode((new stdClass)));//Invalid - returns false from json_encodevar_dump(json_encode(curl_init()));//Invalid - Throws an JsonException since PHP 7.3.0var_dump(json_encode(curl_init(), JSON_THROW_ON_ERROR));
打开App,查看更多内容
随时随地看视频慕课网APP