私はよりオブジェクト指向のアプローチを好むので、デコードとエンコードのために json_last_error も処理する独自の json クラスを作成しました。
どういうわけか、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 ]]] )