File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / tests / lang / 031.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, 8 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 #16227 (Internal hash position bug on assignment)
    3: --FILE--
    4: <?php
    5: // reported by php.net@alienbill.com
    6: $arrayOuter = array("key1","key2");
    7: $arrayInner = array("0","1");
    8: 
    9: print "Correct - with inner loop reset.\n";
   10: 
   11: while(list(,$o) = each($arrayOuter)){
   12: 	reset($arrayInner);
   13: 	while(list(,$i) = each($arrayInner)){
   14: 	    	print "inloop $i for $o\n";
   15: 	}
   16: }
   17: reset($arrayOuter);
   18: reset($arrayInner);
   19: 
   20: print "What happens without inner loop reset.\n";
   21: 
   22: while(list(,$o) = each($arrayOuter)){
   23: 	while(list(,$i) = each($arrayInner)){
   24: 		print "inloop $i for $o\n";
   25: 	}
   26: }
   27: reset($arrayOuter);
   28: reset($arrayInner);
   29: 
   30: print "What happens without inner loop reset but copy.\n";
   31: 
   32: while(list(,$o) = each($arrayOuter)){
   33: 	$placeholder = $arrayInner;
   34: 	while(list(,$i) = each($arrayInner)){
   35: 		print "inloop $i for $o\n";
   36: 	}
   37: }
   38: reset($arrayOuter);
   39: reset($arrayInner);
   40: 
   41: print "What happens with inner loop reset over copy.\n";
   42: 
   43: while(list(,$o) = each($arrayOuter)){
   44: 	$placeholder = $arrayInner;
   45: 	while(list(,$i) = each($placeholder)){
   46: 		print "inloop $i for $o\n";
   47: 	}
   48: }
   49: reset($arrayOuter);
   50: reset($arrayInner);
   51: ?>
   52: --EXPECT--
   53: Correct - with inner loop reset.
   54: inloop 0 for key1
   55: inloop 1 for key1
   56: inloop 0 for key2
   57: inloop 1 for key2
   58: What happens without inner loop reset.
   59: inloop 0 for key1
   60: inloop 1 for key1
   61: What happens without inner loop reset but copy.
   62: inloop 0 for key1
   63: inloop 1 for key1
   64: inloop 0 for key2
   65: inloop 1 for key2
   66: What happens with inner loop reset over copy.
   67: inloop 0 for key1
   68: inloop 1 for key1
   69: inloop 0 for key2
   70: inloop 1 for key2

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>