diff options
author | Marcus Boerger <helly@php.net> | 2003-12-22 16:27:14 +0000 |
---|---|---|
committer | Marcus Boerger <helly@php.net> | 2003-12-22 16:27:14 +0000 |
commit | 06788f04384f9f7db0f86e5acb580dd7b11e9be0 (patch) | |
tree | 62f2495124fb0549aa37a4ef1748009ff446f5d0 /tests | |
parent | 1a53f3c5e092a8b1f0c6e7e5deba3a0728954629 (diff) | |
download | php-git-06788f04384f9f7db0f86e5acb580dd7b11e9be0.tar.gz |
Fixed bug #26675 (Segfault on ArrayAccess use)
Update NEWS
Diffstat (limited to 'tests')
-rwxr-xr-x | tests/classes/array_access_007.phpt | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/tests/classes/array_access_007.phpt b/tests/classes/array_access_007.phpt new file mode 100755 index 0000000000..42187fe5d5 --- /dev/null +++ b/tests/classes/array_access_007.phpt @@ -0,0 +1,57 @@ +--TEST-- +ZE2 ArrayAccess and [] assignment +--FILE-- +<?php + +class OverloadedArray implements ArrayAccess { + public $realArray; + + function __construct() { + $this->realArray = array(); + } + + function offsetExists($index) { + return array_key_exists($this->realArray, $index); + } + + function offsetGet($index) { + return $this->realArray[$index]; + } + + function offsetSet($index, $value) { + if (is_null($index)) { + $this->realArray[] = $value; + } else { + $this->realArray[$index] = $value; + } + } + + function offsetUnset($index) { + unset($this->realArray[$index]); + } + + function dump() { + var_dump($this->realArray); + } +} + +$a = new OverloadedArray; +$a[] = 1; +$a[1] = 2; +$a[2] = 3; +$a[] = 4; +$a->dump(); +?> +===DONE=== +--EXPECT-- +array(4) { + [0]=> + int(1) + [1]=> + int(2) + [2]=> + int(3) + [3]=> + int(4) +} +===DONE=== |