summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikita Popov <nikita.ppv@gmail.com>2017-05-01 12:15:41 +0200
committerNikita Popov <nikita.ppv@gmail.com>2017-05-01 12:15:41 +0200
commite3f411c9f7d95eed316185da2be0c1e9b88227a3 (patch)
tree272571f129dc159860eb85dd12a68cb81038a430
parent9622a3be436a300d45bf77524c2a75e628dca172 (diff)
parent1967950dc33b87a5b92c33875885cfb0b5b5bffc (diff)
downloadphp-git-e3f411c9f7d95eed316185da2be0c1e9b88227a3.tar.gz
Merge branch 'PHP-7.0' into PHP-7.1
-rw-r--r--ext/spl/spl_fixedarray.c2
-rw-r--r--ext/spl/tests/SplFixedArray_override_offsetGet_only.phpt22
2 files changed, 23 insertions, 1 deletions
diff --git a/ext/spl/spl_fixedarray.c b/ext/spl/spl_fixedarray.c
index 38d5f35d33..9fb74902a7 100644
--- a/ext/spl/spl_fixedarray.c
+++ b/ext/spl/spl_fixedarray.c
@@ -495,7 +495,7 @@ static int spl_fixedarray_object_has_dimension(zval *object, zval *offset, int c
intern = Z_SPLFIXEDARRAY_P(object);
- if (intern->fptr_offset_get) {
+ if (intern->fptr_offset_has) {
zval rv;
SEPARATE_ARG_IF_REF(offset);
zend_call_method_with_1_params(object, intern->std.ce, &intern->fptr_offset_has, "offsetExists", &rv, offset);
diff --git a/ext/spl/tests/SplFixedArray_override_offsetGet_only.phpt b/ext/spl/tests/SplFixedArray_override_offsetGet_only.phpt
new file mode 100644
index 0000000000..4ad03a4c34
--- /dev/null
+++ b/ext/spl/tests/SplFixedArray_override_offsetGet_only.phpt
@@ -0,0 +1,22 @@
+--TEST--
+Overriding SplFixedArray::offsetGet() only
+--FILE--
+<?php
+
+class MyArray extends SplFixedArray {
+ public function offsetGet($key) {
+ return "prefix_" . parent::offsetGet($key);
+ }
+}
+
+$arr = new MyArray(1);
+var_dump(isset($arr[0]));
+$arr[0] = "abc";
+var_dump(isset($arr[0]));
+var_dump($arr[0]);
+
+?>
+--EXPECT--
+bool(false)
+bool(true)
+string(10) "prefix_abc"