--TEST-- Testing array dereference on object that implements ArrayAccess --FILE-- 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)