Annotation of embedaddon/php/tests/lang/bug27439.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Bug #27439 (foreach() with $this segfaults)
! 3: --FILE--
! 4: <?php
! 5:
! 6: class test_props {
! 7: public $a = 1;
! 8: public $b = 2;
! 9: public $c = 3;
! 10: }
! 11:
! 12: class test {
! 13: public $array = array(1,2,3);
! 14: public $string = "string";
! 15:
! 16: public function __construct() {
! 17: $this->object = new test_props;
! 18: }
! 19:
! 20: public function getArray() {
! 21: return $this->array;
! 22: }
! 23:
! 24: public function getString() {
! 25: return $this->string;
! 26: }
! 27:
! 28: public function case1() {
! 29: foreach ($this->array as $foo) {
! 30: echo $foo;
! 31: }
! 32: }
! 33:
! 34: public function case2() {
! 35: foreach ($this->foobar as $foo);
! 36: }
! 37:
! 38: public function case3() {
! 39: foreach ($this->string as $foo);
! 40: }
! 41:
! 42: public function case4() {
! 43: foreach ($this->getArray() as $foo);
! 44: }
! 45:
! 46: public function case5() {
! 47: foreach ($this->getString() as $foo);
! 48: }
! 49:
! 50: public function case6() {
! 51: foreach ($this->object as $foo) {
! 52: echo $foo;
! 53: }
! 54: }
! 55: }
! 56: $test = new test();
! 57: $test->case1();
! 58: $test->case2();
! 59: $test->case3();
! 60: $test->case4();
! 61: $test->case5();
! 62: $test->case6();
! 63: echo "\n";
! 64: echo "===DONE===";
! 65: ?>
! 66: --EXPECTF--
! 67: 123
! 68: Notice: Undefined property: test::$foobar in %s on line %d
! 69:
! 70: Warning: Invalid argument supplied for foreach() in %s on line %d
! 71:
! 72: Warning: Invalid argument supplied for foreach() in %s on line %d
! 73:
! 74: Warning: Invalid argument supplied for foreach() in %s on line %d
! 75: 123
! 76: ===DONE===
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>