array_013.phpt 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. --TEST--
  2. SPL: ArrayIterator::append
  3. --FILE--
  4. <?php
  5. if (!class_exists('NoRewindIterator', false))
  6. {
  7. require_once(dirname(__FILE__) . '/../examples/norewinditerator.inc');
  8. }
  9. echo "===Array===\n";
  10. $a = array(0 => 'zero', 1 => 'one', 2 => 'two');
  11. $it = new ArrayIterator($a);
  12. foreach($it as $key => $val)
  13. {
  14. echo "$key=>$val\n";
  15. }
  16. echo "===Append===\n";
  17. $it->append('three');
  18. $it->append('four');
  19. foreach(new NoRewindIterator($it) as $key => $val)
  20. {
  21. echo "$key=>$val\n";
  22. }
  23. echo "===Object===\n";
  24. class test
  25. {
  26. public $zero = 0;
  27. protected $pro;
  28. public $one = 1;
  29. private $pri;
  30. public $two = 2;
  31. }
  32. $o = new test;
  33. $it = new ArrayIterator($o);
  34. foreach($it as $key => $val)
  35. {
  36. echo "$key=>$val\n";
  37. }
  38. echo "===Append===\n";
  39. $it->append('three');
  40. $it->append('four');
  41. foreach(new NoRewindIterator($it) as $key => $val)
  42. {
  43. echo "$key=>$val\n";
  44. }
  45. var_dump($o->{0}); /* doesn't wotk anyway */
  46. ?>
  47. ===DONE===
  48. <?php exit(0); ?>
  49. --EXPECTF--
  50. ===Array===
  51. 0=>zero
  52. 1=>one
  53. 2=>two
  54. ===Append===
  55. 3=>three
  56. 4=>four
  57. ===Object===
  58. zero=>0
  59. one=>1
  60. two=>2
  61. ===Append===
  62. Catchable fatal error: ArrayIterator::append(): Cannot append properties to objects, use ArrayIterator::offsetSet() instead in %sarray_013.php on line %d