Annotation of embedaddon/php/ext/spl/tests/bug33136.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Bug #33136 (method offsetSet in class extended from ArrayObject crash PHP)
3: --FILE--
4: <?php
5:
6: class Collection extends ArrayObject
7: {
8: private $data;
9:
10: function __construct()
11: {
12: $this->data = array();
13: parent::__construct($this->data);
14: }
15:
16: function offsetGet($index)
17: {
18: echo __METHOD__ . "($index)\n";
19: return parent::offsetGet($index);
20: }
21:
22: function offsetSet($index, $value)
23: {
24: echo __METHOD__ . "(" . (is_null($index) ? "NULL" : $index) . ",$value)\n";
25: parent::offsetSet($index, $value);
26: }
27: }
28:
29: echo "\n\nInitiate Obj\n";
30: $arrayObj = new Collection();
31:
32: echo "Assign values\n";
33:
34: $arrayObj[] = "foo";
35: var_dump($arrayObj[0]);
36:
37: $arrayObj[] = "bar";
38: var_dump($arrayObj[0]);
39: var_dump($arrayObj[1]);
40:
41: $arrayObj["foo"] = "baz";
42: var_dump($arrayObj["foo"]);
43:
44: print_r($arrayObj);
45:
46: var_dump(count($arrayObj));
47:
48: ?>
49: ===DONE===
50: <?php //exit(0); ?>
51: --EXPECT--
52: Initiate Obj
53: Assign values
54: Collection::offsetSet(NULL,foo)
55: Collection::offsetGet(0)
56: string(3) "foo"
57: Collection::offsetSet(NULL,bar)
58: Collection::offsetGet(0)
59: string(3) "foo"
60: Collection::offsetGet(1)
61: string(3) "bar"
62: Collection::offsetSet(foo,baz)
63: Collection::offsetGet(foo)
64: string(3) "baz"
65: Collection Object
66: (
67: [data:Collection:private] => Array
68: (
69: )
70:
71: [storage:ArrayObject:private] => Array
72: (
73: [0] => foo
74: [1] => bar
75: [foo] => baz
76: )
77:
78: )
79: int(3)
80: ===DONE===
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>