summaryrefslogtreecommitdiff
path: root/Zend/zend_object_handlers.c
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@php.net>2007-01-10 15:58:08 +0000
committerDmitry Stogov <dmitry@php.net>2007-01-10 15:58:08 +0000
commite470e22e20fa327ac7331c560dc034522ca89aae (patch)
treea8701a3d613f1e4e88d2844a9f6fcfa70724f0db /Zend/zend_object_handlers.c
parent4e0f1992ed8a1d684cb528d54773b14bed386a39 (diff)
downloadphp-git-e470e22e20fa327ac7331c560dc034522ca89aae.tar.gz
- Fixed bug #35106 (nested foreach fails when array variable has a reference).
- Fixed bug #36214 (__get method works properly only when conditional operator is used). - Fixed bug #39449 (Overloaded array properties do not work correctly). - Fixed bug #39990 (Cannot "foreach" over overloaded properties).
Diffstat (limited to 'Zend/zend_object_handlers.c')
-rw-r--r--Zend/zend_object_handlers.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/Zend/zend_object_handlers.c b/Zend/zend_object_handlers.c
index cf7f748aed..fd5128ab28 100644
--- a/Zend/zend_object_handlers.c
+++ b/Zend/zend_object_handlers.c
@@ -334,7 +334,8 @@ zval *zend_std_read_property(zval *object, zval *member, int type TSRMLS_DC)
if (rv) {
retval = &rv;
- if (type == BP_VAR_W || type == BP_VAR_RW || type == BP_VAR_UNSET) {
+ if (!rv->is_ref &&
+ (type == BP_VAR_W || type == BP_VAR_RW || type == BP_VAR_UNSET)) {
if (rv->refcount > 0) {
zval *tmp = rv;