最近碰到一個 BUG ,會造成 json_encode 回傳空白,所以 api 的回傳值就會錯誤
找了好久才發現是在組資料的時候,不小心組出了一個遞迴物件(Object *RECURSION*)
所謂的遞迴物件就是,該物件有某個屬性是指向物件本身,就會造成在走訪的時候不斷的重覆指向
以前我從來沒有碰過這種資料,理論上正確的資料不會也不應該出現這種東西,總之就是要小心處理
以下看一下我手動建立出來的 遞迴物件(Object *RECURSION*)
<?php $c = (object) array('a' => 1, 'b' => 2); $c->d = $c; echo "<pre>c = " . print_r($c, TRUE). "</pre>"; echo "json = " . json_encode($c); /** * output * * c = stdClass Object * ( * [a] => 1 * [b] => 2 * [d] => stdClass Object * *RECURSION* * ) * * * Warning: json_encode(): recursion detected in D:\www\www_test\json_encode_error.php on line 7 * json = {"a":1,"b":2,"d":{"a":1,"b":2,"d":null}} */ ?>
全站熱搜
留言列表