File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / tests / lang / bug27439.phpt
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Feb 21 23:48:06 2012 UTC (12 years, 5 months ago) by misho
Branches: php, MAIN
CVS tags: v5_4_3elwix, v5_4_29p0, v5_4_29, v5_4_20p0, v5_4_20, v5_4_17p0, v5_4_17, v5_3_10, HEAD
php

    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>