diff options
author | Xinchen Hui <laruence@php.net> | 2012-08-12 11:50:28 +0800 |
---|---|---|
committer | Xinchen Hui <laruence@php.net> | 2012-08-12 11:50:28 +0800 |
commit | 7b307fb930e6cf328993dee4b060f6f823c39d24 (patch) | |
tree | 1810b514ba3f2aa08d135ed6d2a51674d5d98fc7 /Zend/zend.c | |
parent | d4f9bbfae248687c1aa68370564b14544eb4eafd (diff) | |
download | php-git-7b307fb930e6cf328993dee4b060f6f823c39d24.tar.gz |
Fixed bug #62328 (implementing __toString and a cast to string fails)
__toString should has a high priority
Diffstat (limited to 'Zend/zend.c')
-rw-r--r-- | Zend/zend.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/Zend/zend.c b/Zend/zend.c index 18c4f11604..09338e7f83 100644 --- a/Zend/zend.c +++ b/Zend/zend.c @@ -258,6 +258,9 @@ ZEND_API void zend_make_printable_zval(zval *expr, zval *expr_copy, int *use_cop { TSRMLS_FETCH(); + if (zend_std_cast_object_tostring(expr, expr_copy, IS_STRING TSRMLS_CC) == SUCCESS) { + break; + } if (Z_OBJ_HANDLER_P(expr, cast_object)) { zval *val; @@ -270,12 +273,6 @@ ZEND_API void zend_make_printable_zval(zval *expr, zval *expr_copy, int *use_cop } zval_ptr_dtor(&val); } - /* Standard PHP objects */ - if (Z_OBJ_HT_P(expr) == &std_object_handlers || !Z_OBJ_HANDLER_P(expr, cast_object)) { - if (zend_std_cast_object_tostring(expr, expr_copy, IS_STRING TSRMLS_CC) == SUCCESS) { - break; - } - } if (!Z_OBJ_HANDLER_P(expr, cast_object) && Z_OBJ_HANDLER_P(expr, get)) { zval *z = Z_OBJ_HANDLER_P(expr, get)(expr TSRMLS_CC); |