Annotation of embedaddon/php/tests/lang/bug21961.phpt, revision 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>