diff --git a/ext/json/json.c b/ext/json/json.c index 99e80fa913d..1b7de735d9b 100644 --- a/ext/json/json.c +++ b/ext/json/json.c @@ -136,7 +136,8 @@ static void json_encode_array(smart_str *buf, zval **val TSRMLS_DC) { } if (myht && myht->nApplyCount > 1) { - php_error_docref(NULL TSRMLS_CC, E_RECOVERABLE_ERROR, "recursion detected"); + php_error_docref(NULL TSRMLS_CC, E_WARNING, "recursion detected"); + smart_str_appendl(buf, "null", 4); return; } diff --git a/ext/json/tests/003.phpt b/ext/json/tests/003.phpt index bb5619d9dd9..6ae92bbebd1 100644 --- a/ext/json/tests/003.phpt +++ b/ext/json/tests/003.phpt @@ -25,4 +25,6 @@ array(1) { } } -Catchable fatal error: json_encode(): recursion detected in %s on line %d +Warning: json_encode(): recursion detected in %s on line %d +string(8) "[[null]]" +Done diff --git a/ext/json/tests/004.phpt b/ext/json/tests/004.phpt index 21777ba2a16..884d8742054 100644 --- a/ext/json/tests/004.phpt +++ b/ext/json/tests/004.phpt @@ -22,4 +22,6 @@ object(stdClass)#%d (1) { } } -Catchable fatal error: json_encode(): recursion detected in %s on line %d +Warning: json_encode(): recursion detected in %s on line %d +string(22) "{"prop":{"prop":null}}" +Done diff --git a/ext/json/tests/005.phpt b/ext/json/tests/005.phpt index b11168702c5..f6a8977d184 100644 --- a/ext/json/tests/005.phpt +++ b/ext/json/tests/005.phpt @@ -22,4 +22,6 @@ array(1) { } } -Catchable fatal error: json_encode(): recursion detected in %s on line %d +Warning: json_encode(): recursion detected in %s on line %d +string(8) "[[null]]" +Done