ホームページ >バックエンド開発 >PHPチュートリアル >php5.1.6の場合はRECURSIONと表示されます。壊してください! ! !

php5.1.6の場合はRECURSIONと表示されます。壊してください! ! !

WBOY
WBOYオリジナル
2016-06-23 14:40:131436ブラウズ

$m = array('1');
$m['a'] = $m;
die;

これは簡単なテストです。出力結果は
Array ( [0] => 1 [a] => Array *RECURSION* )

しかし、私が望む結果は次のとおりです。
Array ( [0] => 1 [a] => ; Array ( [0] => 1 ) )

どの部分を変更する必要がありますか?神に答えを求める

ディスカッションに返信する (解決策)

神に答えを求める この問題に遭遇した人はいますか?

誰も気にしないの?

RECURSION 再帰

再帰が発生すると、print_r は次のように結果を表示します

これは正しいです。print_r はデバッグ専用なので、要点だけを言ってください

RECURSION 再帰

再帰が発生すると、print_r は次のように結果を表示します

これは正しいです、意味がある限り、print_r はデバッグ用なので


しかし、この $m を json_encode に渡すと、戻り値はありません。

php のバージョンが低すぎます。json_encode でエラーが発生するのは正常です

php5.2.5 ではこの状況に対処できません

json_encode() [function.json-encode]: 再帰が検出されました


私の PHP バージョン 5.3.27 の出力結果は正確に Array ([0] => 1 [a] => Array ([0] => 1)) です

php のバージョンが低すぎるため、json_encode でエラーが発生するのは正常です

ですphpのバージョンの問題。 php の上位バージョンをテストしました。 許可されています。
私は現在php5.1.6を使用しており、json_encodeメソッドは自分で追加されました。

すべての偉大な神々に感謝します。

私は自分で解決策を見つけました


$m['a'] = (array) $m;

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。