summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStanislav Malyshev <stas@php.net>2004-07-14 09:01:58 +0000
committerStanislav Malyshev <stas@php.net>2004-07-14 09:01:58 +0000
commit28d72ce2fdd88f416b02feaf0900967bacd55ab9 (patch)
tree718b1e7e1bf076b51ee4dc7cc525a234743c3412
parent51ae1cc7bd2e4e0c1164ac7b95b7c7ee514f7a68 (diff)
downloadphp-git-28d72ce2fdd88f416b02feaf0900967bacd55ab9.tar.gz
fix #28957
-rw-r--r--Zend/zend_object_handlers.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/Zend/zend_object_handlers.c b/Zend/zend_object_handlers.c
index d7f57a8d96..4beb8df3c9 100644
--- a/Zend/zend_object_handlers.c
+++ b/Zend/zend_object_handlers.c
@@ -381,7 +381,15 @@ zval *zend_std_read_dimension(zval *object, zval *offset, int type TSRMLS_DC)
zval *retval;
if (instanceof_function_ex(ce, zend_ce_arrayaccess, 1 TSRMLS_CC)) {
+ if(offset == NULL) {
+ /* [] construct */
+ zval offset_null;
+ ZVAL_NULL(&offset_null);
+ zend_call_method_with_1_params(&object, ce, NULL, "offsetget", &retval, &offset_null);
+ zval_dtor(&offset_null); /* just in case */
+ } else {
zend_call_method_with_1_params(&object, ce, NULL, "offsetget", &retval, offset);
+ }
if (!retval) {
if (!EG(exception)) {
zend_error(E_ERROR, "Undefined offset for object of type %s used as array", ce->name);