diff options
Diffstat (limited to 'Zend/tests/dereference_005.phpt')
-rw-r--r-- | Zend/tests/dereference_005.phpt | 38 |
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) |