foreachLoopObjects.004.phpt 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. --TEST--
  2. Foreach loop tests - Removing the current element from an iterated object.
  3. --FILE--
  4. <?php
  5. class C {
  6. public $a = "Original a";
  7. public $b = "Original b";
  8. public $c = "Original c";
  9. public $d = "Original d";
  10. public $e = "Original e";
  11. }
  12. echo "\nRemoving the current element from an iterated object.\n";
  13. $obj = new C;
  14. $count=0;
  15. foreach ($obj as $v) {
  16. if ($v==$obj->b) {
  17. unset($obj->b);
  18. }
  19. var_dump($v);
  20. if (++$count>10) {
  21. echo "Loop detected.\n";
  22. break;
  23. }
  24. }
  25. var_dump($obj);
  26. ?>
  27. --EXPECTF--
  28. Removing the current element from an iterated object.
  29. string(10) "Original a"
  30. string(10) "Original b"
  31. Warning: Undefined property: C::$b in %s on line %d
  32. string(10) "Original c"
  33. Warning: Undefined property: C::$b in %s on line %d
  34. string(10) "Original d"
  35. Warning: Undefined property: C::$b in %s on line %d
  36. string(10) "Original e"
  37. object(C)#%d (4) {
  38. ["a"]=>
  39. string(10) "Original a"
  40. ["c"]=>
  41. string(10) "Original c"
  42. ["d"]=>
  43. string(10) "Original d"
  44. ["e"]=>
  45. string(10) "Original e"
  46. }