Annotation of embedaddon/php/tests/lang/bug21961.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Bug #21961 (get_parent_class() segfault)
3: --SKIPIF--
4: <?php if (version_compare(zend_version(),'2.0.0-dev','<')) die('skip prepared for ZE2'); ?>
5: --FILE--
6: <?php
7:
8: class man
9: {
10: public $name, $bars;
11: function man()
12: {
13: $this->name = 'Mr. X';
14: $this->bars = array();
15: }
16:
17: function getdrunk($where)
18: {
19: $this->bars[] = new bar($where);
20: }
21:
22: function getName()
23: {
24: return $this->name;
25: }
26: }
27:
28: class bar extends man
29: {
30: public $name;
31:
32: function bar($w)
33: {
34: $this->name = $w;
35: }
36:
37: function getName()
38: {
39: return $this->name;
40: }
41:
42: function whosdrunk()
43: {
44: $who = get_parent_class($this);
45: if($who == NULL)
46: {
47: return 'nobody';
48: }
49: return eval("return ".$who.'::getName();');
50: }
51: }
52:
53: $x = new man;
54: $x->getdrunk('The old Tavern');
55: var_dump($x->bars[0]->whosdrunk());
56: ?>
57: --EXPECT--
58: string(14) "The old Tavern"
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>