summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorMoriyoshi Koizumi <moriyoshi@php.net>2003-02-03 14:02:21 +0000
committerMoriyoshi Koizumi <moriyoshi@php.net>2003-02-03 14:02:21 +0000
commitaded4d818adadeb70fba324d6ca242c64b6c4059 (patch)
treec2387ae77d422a64caaf87fa5b050ec77857b61d /tests
parentbe83a02b8cc50c797468ced7c88e0f85a4aa84e0 (diff)
downloadphp-git-aded4d818adadeb70fba324d6ca242c64b6c4059.tar.gz
Added test case for bug #21961
Diffstat (limited to 'tests')
-rw-r--r--tests/lang/bug21961.phpt56
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"