]> granicus.if.org Git - php/commitdiff
Added test case for bug #21961
authorMoriyoshi Koizumi <moriyoshi@php.net>
Mon, 3 Feb 2003 14:02:21 +0000 (14:02 +0000)
committerMoriyoshi Koizumi <moriyoshi@php.net>
Mon, 3 Feb 2003 14:02:21 +0000 (14:02 +0000)
tests/lang/bug21961.phpt [new file with mode: 0644]

diff --git a/tests/lang/bug21961.phpt b/tests/lang/bug21961.phpt
new file mode 100644 (file)
index 0000000..eddb8a4
--- /dev/null
@@ -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"