diff options
| author | Dmitry Stogov <dmitry@php.net> | 2007-01-10 15:58:08 +0000 |
|---|---|---|
| committer | Dmitry Stogov <dmitry@php.net> | 2007-01-10 15:58:08 +0000 |
| commit | e470e22e20fa327ac7331c560dc034522ca89aae (patch) | |
| tree | a8701a3d613f1e4e88d2844a9f6fcfa70724f0db /Zend/zend_execute.c | |
| parent | 4e0f1992ed8a1d684cb528d54773b14bed386a39 (diff) | |
| download | php-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.c | 3 |
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; |
