summaryrefslogtreecommitdiff
path: root/Zend/tests/dereference_005.phpt
diff options
context:
space:
mode:
Diffstat (limited to 'Zend/tests/dereference_005.phpt')
-rw-r--r--Zend/tests/dereference_005.phpt38
1 files changed, 38 insertions, 0 deletions
diff --git a/Zend/tests/dereference_005.phpt b/Zend/tests/dereference_005.phpt
new file mode 100644
index 0000000000..cca87571cd
--- /dev/null
+++ b/Zend/tests/dereference_005.phpt
@@ -0,0 +1,38 @@
+--TEST--
+Testing array dereference on object that implements ArrayAccess
+--FILE--
+<?php
+
+error_reporting(E_ALL);
+
+class obj implements arrayaccess {
+ private $container = array();
+ public function __construct() {
+ $this->container = array(
+ "one" => 1,
+ "two" => 2,
+ "three" => 3,
+ );
+ }
+ public function offsetSet($offset, $value) {
+ $this->container[$offset] = $value;
+ }
+ public function offsetExists($offset) {
+ return isset($this->container[$offset]);
+ }
+ public function offsetUnset($offset) {
+ unset($this->container[$offset]);
+ }
+ public function offsetGet($offset) {
+ return isset($this->container[$offset]) ? $this->container[$offset] : null;
+ }
+}
+
+function x() {
+ return new obj;
+}
+var_dump(x()['two']);
+
+?>
+--EXPECT--
+int(2)