diff options
author | Moriyoshi Koizumi <moriyoshi@php.net> | 2003-02-03 14:02:21 +0000 |
---|---|---|
committer | Moriyoshi Koizumi <moriyoshi@php.net> | 2003-02-03 14:02:21 +0000 |
commit | aded4d818adadeb70fba324d6ca242c64b6c4059 (patch) | |
tree | c2387ae77d422a64caaf87fa5b050ec77857b61d /tests | |
parent | be83a02b8cc50c797468ced7c88e0f85a4aa84e0 (diff) | |
download | php-git-aded4d818adadeb70fba324d6ca242c64b6c4059.tar.gz |
Added test case for bug #21961
Diffstat (limited to 'tests')
-rw-r--r-- | tests/lang/bug21961.phpt | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/tests/lang/bug21961.phpt b/tests/lang/bug21961.phpt new file mode 100644 index 0000000000..eddb8a4a24 --- /dev/null +++ b/tests/lang/bug21961.phpt @@ -0,0 +1,56 @@ +--TEST-- +Bug #21961 (get_parent_class() segfault) +--FILE-- +<?php + +class man +{ + var $name, $bars; + function man() + { + $this->name = 'Mr. X'; + $this->bars = array(); + } + + function getdrunk($where) + { + $this->bars[] = new bar($where); + } + + function getName() + { + return $this->name; + } +} + +class bar extends man +{ + var $name; + + function bar($w) + { + $this->name = $w; + } + + function getName() + { + return $this->name; + } + + function whosdrunk() + { + $who = get_parent_class($this); + if($who == NULL) + { + return 'nobody'; + } + return eval($who.'::getName()'); + } +} + +$x = new man; +$x->getdrunk('The old Tavern'); +var_dump($x->bars[0]->whosdrunk()); +?> +--EXPECT-- +string(14) "The old Tavern" |