diff options
Diffstat (limited to 'tests/classes/array_access_008.phpt')
| -rwxr-xr-x | tests/classes/array_access_008.phpt | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/tests/classes/array_access_008.phpt b/tests/classes/array_access_008.phpt new file mode 100755 index 0000000000..84ecf08ba8 --- /dev/null +++ b/tests/classes/array_access_008.phpt @@ -0,0 +1,58 @@ +--TEST-- +ZE2 ArrayAccess and ASSIGN_OP operators (.=) +--FILE-- +<?php + +class Peoples implements ArrayAccess { + public $person; + + function __construct() { + $this->person = array(array('name'=>'Foo')); + } + + function offsetExists($index) { + return array_key_exists($this->person, $index); + } + + function & offsetGet($index) { + return $this->person[$index]; + } + + function offsetSet($index, $value) { + $this->person[$index] = $value; + } + + function offsetUnset($index) { + unset($this->person[$index]); + } +} + +$people = new Peoples; + +var_dump($people->person[0]['name']); +$people->person[0]['name'] = $people->person[0]['name'] . 'Bar'; +var_dump($people->person[0]['name']); +$people->person[0]['name'] .= 'Baz'; +var_dump($people->person[0]['name']); + +echo "===ArrayOverloading===\n"; + +$people = new Peoples; + +var_dump($people[0]['name']); +$people[0]['name'] = $people->person[0]['name'] . 'Bar'; +var_dump($people[0]['name']); +$people[0]['name'] .= 'Baz'; +var_dump($people[0]['name']); + +?> +===DONE=== +--EXPECT-- +string(3) "Foo" +string(6) "FooBar" +string(9) "FooBarBaz" +===ArrayOverloading=== +string(3) "Foo" +string(6) "FooBar" +string(9) "FooBarBaz" +===DONE=== |
