You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

57 lines
1.5 KiB

  1. --TEST--
  2. SPL: ArrayObject::setIteratorClass with bad iterator class.
  3. --FILE--
  4. <?php
  5. try {
  6. $ao = new ArrayObject(array('a'=>1,'b'=>2,'c'=>3));
  7. $ao->setIteratorClass("nonExistentClass");
  8. foreach($ao as $key=>$value) {
  9. echo " $key=>$value\n";
  10. }
  11. } catch (Exception $e) {
  12. var_dump($e->getMessage());
  13. }
  14. try {
  15. $ao = new ArrayObject(array('a'=>1,'b'=>2,'c'=>3));
  16. $ao->setIteratorClass("stdClass");
  17. foreach($ao as $key=>$value) {
  18. echo " $key=>$value\n";
  19. }
  20. } catch (Exception $e) {
  21. var_dump($e->getMessage());
  22. }
  23. try {
  24. $ao = new ArrayObject(array('a'=>1,'b'=>2,'c'=>3), 0, "nonExistentClass");
  25. foreach($ao as $key=>$value) {
  26. echo " $key=>$value\n";
  27. }
  28. } catch (Exception $e) {
  29. var_dump($e->getMessage());
  30. }
  31. try {
  32. $ao = new ArrayObject(array('a'=>1,'b'=>2,'c'=>3), 0, "stdClass");
  33. foreach($ao as $key=>$value) {
  34. echo " $key=>$value\n";
  35. }
  36. } catch (Exception $e) {
  37. var_dump($e->getMessage());
  38. }
  39. ?>
  40. --EXPECTF--
  41. Warning: ArrayObject::setIteratorClass() expects parameter 1 to be a class name derived from Iterator, 'nonExistentClass' given in %s on line 4
  42. a=>1
  43. b=>2
  44. c=>3
  45. Warning: ArrayObject::setIteratorClass() expects parameter 1 to be a class name derived from Iterator, 'stdClass' given in %s on line 14
  46. a=>1
  47. b=>2
  48. c=>3
  49. string(113) "ArrayObject::__construct() expects parameter 3 to be a class name derived from Iterator, 'nonExistentClass' given"
  50. string(105) "ArrayObject::__construct() expects parameter 3 to be a class name derived from Iterator, 'stdClass' given"