Annotation of embedaddon/php/tests/lang/foreachLoopObjects.005.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Foreach loop tests - removing properties before and after the current property during the loop.
! 3: --FILE--
! 4: <?php
! 5:
! 6: class C {
! 7: public $a = "Original a";
! 8: public $b = "Original b";
! 9: public $c = "Original c";
! 10: public $d = "Original d";
! 11: public $e = "Original e";
! 12: }
! 13:
! 14: echo "\nRemoving properties before the current element from an iterated object.\n";
! 15: $obj = new C;
! 16: $count=0;
! 17: foreach ($obj as $v) {
! 18: if ($v==$obj->a) {
! 19: unset($obj->c);
! 20: }
! 21: var_dump($v);
! 22: if (++$count>10) {
! 23: echo "Loop detected.\n";
! 24: break;
! 25: }
! 26: }
! 27: var_dump($obj);
! 28:
! 29: echo "\nRemoving properties before the current element from an iterated object.\n";
! 30: $obj = new C;
! 31: foreach ($obj as $v) {
! 32: if ($v==$obj->b) {
! 33: unset($obj->a);
! 34: }
! 35: var_dump($v);
! 36: if (++$count>10) {
! 37: echo "Loop detected.\n";
! 38: break;
! 39: }
! 40: }
! 41: var_dump($obj);
! 42:
! 43:
! 44: ?>
! 45: --EXPECTF--
! 46:
! 47: Removing properties before the current element from an iterated object.
! 48: string(10) "Original a"
! 49: string(10) "Original b"
! 50: string(10) "Original d"
! 51: string(10) "Original e"
! 52: object(C)#%d (4) {
! 53: ["a"]=>
! 54: string(10) "Original a"
! 55: ["b"]=>
! 56: string(10) "Original b"
! 57: ["d"]=>
! 58: string(10) "Original d"
! 59: ["e"]=>
! 60: string(10) "Original e"
! 61: }
! 62:
! 63: Removing properties before the current element from an iterated object.
! 64: string(10) "Original a"
! 65: string(10) "Original b"
! 66: string(10) "Original c"
! 67: string(10) "Original d"
! 68: string(10) "Original e"
! 69: object(C)#%d (4) {
! 70: ["b"]=>
! 71: string(10) "Original b"
! 72: ["c"]=>
! 73: string(10) "Original c"
! 74: ["d"]=>
! 75: string(10) "Original d"
! 76: ["e"]=>
! 77: string(10) "Original e"
! 78: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>