php IHDR w Q )Ba pHYs sRGB gAMA a IDATxMk\U s&uo,mD )Xw+e?tw.oWp;QHZnw`gaiJ9̟灙a=nl[ ʨ G;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ y H@E7j 1j+OFRg}ܫ;@Ea~ j`u'o> j- $_q?qS XzG'ay
files >> /php-7.1.11/tests/lang/ |
files >> //php-7.1.11/tests/lang/foreachLoop.009.phpt |
--TEST-- Foreach loop tests - foreach operates on the original array if the array is referenced outside the loop. --FILE-- <?php // From php.net/foreach: // "Unless the array is referenced, foreach operates on a copy of the specified array." echo "\nRemove elements from a referenced array during loop\n"; $refedArray=array("original.0", "original.1", "original.2"); $ref=&$refedArray; foreach ($refedArray as $k=>$v1) { array_pop($refedArray); echo "key: $k; value: $v1\n"; } echo "\nRemove elements from a referenced array during loop, using &\$value\n"; $refedArray=array("original.0", "original.1", "original.2"); $ref=&$refedArray; foreach ($refedArray as $k=>&$v2) { array_pop($refedArray); echo "key: $k; value: $v2\n"; } echo "\nAdd elements to a referenced array during loop\n"; $refedArray=array("original.0", "original.1", "original.2"); $ref=&$refedArray; $count=0; foreach ($refedArray as $k=>$v3) { array_push($refedArray, "new.$k"); echo "key: $k; value: $v3\n"; if ($count++>5) { echo "Loop detected, as expected.\n"; break; } } echo "\nAdd elements to a referenced array during loop, using &\$value\n"; $refedArray=array("original.0", "original.1", "original.2"); $ref=&$refedArray; $count=0; foreach ($refedArray as $k=>&$v4) { array_push($refedArray, "new.$k"); echo "key: $k; value: $v4\n"; if ($count++>5) { echo "Loop detected, as expected.\n"; break; } } ?> --EXPECT-- Remove elements from a referenced array during loop key: 0; value: original.0 key: 1; value: original.1 key: 2; value: original.2 Remove elements from a referenced array during loop, using &$value key: 0; value: original.0 key: 1; value: original.1 Add elements to a referenced array during loop key: 0; value: original.0 key: 1; value: original.1 key: 2; value: original.2 Add elements to a referenced array during loop, using &$value key: 0; value: original.0 key: 1; value: original.1 key: 2; value: original.2 key: 3; value: new.0 key: 4; value: new.1 key: 5; value: new.2 key: 6; value: new.3 Loop detected, as expected.y~or5J={Eeu磝Qk ᯘG{?+]ן?wM3X^歌>{7پK>on\jy Rg/=fOroNVv~Y+ NGuÝHWyw[eQʨSb> >}Gmx[o[<{Ϯ_qFvM IENDB`