为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
慕婉清6462132 2022-12-30 16:06:38
无论$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));


查看完整回答
反对 回复 2022-12-30
  • 1 回答
  • 0 关注
  • 71 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信