Return to bug21961.phpt CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / tests / lang |
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"