diff --git a/ext/spl/spl_iterators.c b/ext/spl/spl_iterators.c index be9a58bcf3d..8d3ecafe5ac 100755 --- a/ext/spl/spl_iterators.c +++ b/ext/spl/spl_iterators.c @@ -924,7 +924,12 @@ static void spl_recursive_tree_iterator_get_entry(spl_recursive_it_object * obje php_set_error_handling(EH_THROW, spl_ce_UnexpectedValueException TSRMLS_CC); RETVAL_ZVAL(*data, 1, 0); - convert_to_string(return_value); + if (Z_TYPE_P(return_value) == IS_ARRAY) { + zval_dtor(return_value); + ZVAL_STRINGL(return_value, "Array", sizeof("Array")-1, 1); + } else { + convert_to_string(return_value); + } php_set_error_handling(EH_NORMAL, NULL TSRMLS_CC); }