Annotation of embedaddon/php/tests/classes/array_access_008.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: ZE2 ArrayAccess and ASSIGN_OP operators (.=)
3: --FILE--
4: <?php
5:
6: class Peoples implements ArrayAccess {
7: public $person;
8:
9: function __construct() {
10: $this->person = array(array('name'=>'Foo'));
11: }
12:
13: function offsetExists($index) {
14: return array_key_exists($this->person, $index);
15: }
16:
17: function offsetGet($index) {
18: return $this->person[$index];
19: }
20:
21: function offsetSet($index, $value) {
22: $this->person[$index] = $value;
23: }
24:
25: function offsetUnset($index) {
26: unset($this->person[$index]);
27: }
28: }
29:
30: $people = new Peoples;
31:
32: var_dump($people->person[0]['name']);
33: $people->person[0]['name'] = $people->person[0]['name'] . 'Bar';
34: var_dump($people->person[0]['name']);
35: $people->person[0]['name'] .= 'Baz';
36: var_dump($people->person[0]['name']);
37:
38: echo "===ArrayOverloading===\n";
39:
40: $people = new Peoples;
41:
42: var_dump($people[0]['name']);
43: $people[0]['name'] = 'FooBar';
44: var_dump($people[0]['name']);
45: $people[0]['name'] = $people->person[0]['name'] . 'Bar';
46: var_dump($people[0]['name']);
47: $people[0]['name'] .= 'Baz';
48: var_dump($people[0]['name']);
49:
50: ?>
51: ===DONE===
52: --EXPECTF--
53: string(3) "Foo"
54: string(6) "FooBar"
55: string(9) "FooBarBaz"
56: ===ArrayOverloading===
57: string(3) "Foo"
58:
59: Notice: Indirect modification of overloaded element of Peoples has no effect in %sarray_access_008.php on line 40
60: string(3) "Foo"
61:
62: Notice: Indirect modification of overloaded element of Peoples has no effect in %sarray_access_008.php on line 42
63: string(3) "Foo"
64:
65: Notice: Indirect modification of overloaded element of Peoples has no effect in %sarray_access_008.php on line 44
66: string(3) "Foo"
67: ===DONE===
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>