]> granicus.if.org Git - php/commitdiff
- initial test for #27439, covers more cases we got during
authorPierre Joye <pajoye@php.net>
Tue, 2 Mar 2004 16:00:49 +0000 (16:00 +0000)
committerPierre Joye <pajoye@php.net>
Tue, 2 Mar 2004 16:00:49 +0000 (16:00 +0000)
  foreach($this->foo as $bar) bug

tests/lang/bug27439.phpt [new file with mode: 0755]

diff --git a/tests/lang/bug27439.phpt b/tests/lang/bug27439.phpt
new file mode 100755 (executable)
index 0000000..cbcc2c3
--- /dev/null
@@ -0,0 +1,74 @@
+--TEST--
+bug27439: foreach() with $this
+--FILE--
+<?php
+
+class test_props {
+       public $a = 1;
+       public $b = 2;
+       public $c = 3;
+}
+
+class test {
+       public $array = array(1,2,3);
+       public $string = "string";
+
+       public function __construct() {
+               $this->object = new test_props;
+       }
+
+       public function getArray() {
+               return $this->array;
+       }
+
+       public function getString() {
+               return $this->string;
+       }
+
+       public function case1() {
+               foreach ($this->array as $foo) {
+                       echo $foo;
+               }
+       }
+
+       public function case2() {
+               foreach ($this->foobar as $foo);
+       }
+
+       public function case3() {
+               foreach ($this->string as $foo);
+       }
+
+       public function case4() {
+               foreach ($this->getArray() as $foo);
+       }
+
+       public function case5() {
+               foreach ($this->getString() as $foo);
+       }
+
+       public function case6() {
+               foreach ($this->object as $foo) {
+                       echo $foo;
+               }
+       }
+}
+$test = new test();
+$test->case1();
+$test->case2();
+$test->case3();
+$test->case4();
+$test->case5();
+$test->case6();
+echo "\n";
+echo "===DONE===";
+?>
+--EXPECTF--
+123
+Warning: Invalid argument supplied for foreach() in %s on line %d
+
+Warning: Invalid argument supplied for foreach() in %s on line %d
+
+Warning: Invalid argument supplied for foreach() in %s on line %d
+123
+===DONE===