summaryrefslogtreecommitdiff
path: root/tests/lang/foreachLoop.005.phpt
diff options
context:
space:
mode:
authorRobert Nicholson <nicholsr@php.net>2009-06-07 21:01:51 +0000
committerRobert Nicholson <nicholsr@php.net>2009-06-07 21:01:51 +0000
commitd46dab70e8aafeeed8d6c24178d4271775cc7a1d (patch)
tree339b7d0c5aef0b97127a72312fdc76e76ce01617 /tests/lang/foreachLoop.005.phpt
parent77693a80b7ed0975b1c2455cca4f2f091e526071 (diff)
downloadphp-git-d46dab70e8aafeeed8d6c24178d4271775cc7a1d.tar.gz
New tests for foreach loops. These were written by another member of the Projectzero team.
Diffstat (limited to 'tests/lang/foreachLoop.005.phpt')
-rw-r--r--tests/lang/foreachLoop.005.phpt23
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/lang/foreachLoop.005.phpt b/tests/lang/foreachLoop.005.phpt
new file mode 100644
index 0000000000..ae6ed3aa28
--- /dev/null
+++ b/tests/lang/foreachLoop.005.phpt
@@ -0,0 +1,23 @@
+--TEST--
+Foreach loop tests - modifying the array during the loop: special case. Behaviour is good since php 5.2.2.
+--FILE--
+<?php
+$a = array("original.0","original.1","original.2");
+foreach ($a as $k=>&$v){
+ $a[$k] = "changed.$k";
+ echo "After changing \$a directly, \$v@$k is: $v\n";
+}
+//--- Expected output:
+//After changing $a directly, $v@0 is: changed.0
+//After changing $a directly, $v@1 is: changed.1
+//After changing $a directly, $v@2 is: changed.2
+//--- Actual output from php.net before 5.2.2:
+//After changing $a directly, $v@0 is: changed.0
+//After changing $a directly, $v@1 is: original.1
+//After changing $a directly, $v@2 is: original.2
+
+?>
+--EXPECT--
+After changing $a directly, $v@0 is: changed.0
+After changing $a directly, $v@1 is: changed.1
+After changing $a directly, $v@2 is: changed.2