summaryrefslogtreecommitdiff
path: root/Zend/zend_execute.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_execute.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_execute.c')
-rw-r--r--Zend/zend_execute.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c
index ddecce87cd..caa0aac2ac 100644
--- a/Zend/zend_execute.c
+++ b/Zend/zend_execute.c
@@ -1163,7 +1163,8 @@ static void zend_fetch_dimension_address(temp_variable *result, zval **container
overloaded_result = Z_OBJ_HT_P(container)->read_dimension(container, dim, type TSRMLS_CC);
if (overloaded_result) {
- if (type == BP_VAR_W || type == BP_VAR_RW || type == BP_VAR_UNSET) {
+ if (!overloaded_result->is_ref &&
+ (type == BP_VAR_W || type == BP_VAR_RW || type == BP_VAR_UNSET)) {
if (overloaded_result->refcount > 0) {
zval *tmp = overloaded_result;