因为我更喜欢面向对象的方法,所以我编写了自己的 json 类来处理 json_last_error 以进行解码和编码。
不知何故,我收到了 json_decode 方法的 depth 属性的 php 警告。
json_decode 方法的 PHP 核心 api (eclipse PDT) 如下所示:
function json_decode ($json, $assoc = null, $depth = null) {}
到目前为止一切顺利,但如果我像这样编写自己的课程:
function my_json_decode ($json, $assoc = null, $depth = null) {
return json_decode($json, $assoc, $depth);
}
并尝试按如下方式运行它:
$json = '{ "sample" : "json" }';
var_dump( my_json_decode($json) );
我收到以下警告:
Warning: json_decode(): Depth must be greater than zero in /
我错过了什么吗?我想如果我将属性的 null 传递给将属性本身设置为 null 的方法应该没问题?!
使用:服务器:Apache/2.2.22 (Unix) PHP/5.3.10
谢谢您的帮助!
[编辑]以澄清我的理解泄漏在哪里:
我正在使用 Eclipse Indigo + PDT。org.eclipse.php.core.language 的 PDT PHP 核心 api 与 php.net 所说的 json_decode 不同:
json_decode org.eclipse.php.core.language:
json_decode ($json, $assoc = null, $depth = null)
json_decode php.net:
json_decode ( string $json [, bool $assoc = false [, int $depth = 512 [, int $options = 0 ]]] )