summaryrefslogtreecommitdiff
path: root/Zend/tests/bug64417.phpt
blob: f3ef740b43e761f280b81d51a131820281fb20fd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
--TEST--
Bug #64417 (BC break: ArrayAccess::&offsetGet() in a trait causes fatal error)
--FILE--
<?php
trait aa {
    private $container = array();
    public function offsetSet($offset, $value) {
        if (is_null($offset)) {
            $this->container[] = $value;
        } else {
            $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) {
	$result = null;
        if (isset($this->container[$offset])) {
            $result = &$this->container[$offset];
        }
        return $result;
    }
}

class obj implements ArrayAccess {
    use aa;
}

$o = new obj;
$o['x'] = 1;
++$o['x'];
echo $o['x'], "\n";
--EXPECT--
2