dit_002.phpt 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. --TEST--
  2. SPL: DirectoryIterator defaults
  3. --SKIPIF--
  4. <?php if (!defined('GLOB_ERR')) die('skip GLOB_ERR not defined'); ?>
  5. --FILE--
  6. <?php
  7. $classes = array(
  8. 'DirectoryIterator' => 0,
  9. 'FilesystemIterator' => 1,
  10. 'RecursiveDirectoryIterator' => 1,
  11. 'GlobIterator' => 1,
  12. );
  13. foreach ($classes as $class => $flags) {
  14. echo "===$class===\n";
  15. $ref = new ReflectionClass($class);
  16. $obj = $ref->newInstance('glob://*');
  17. echo get_class($obj->current()) . "\n";
  18. if ($flags)
  19. {
  20. var_dump($obj->getFlags());
  21. $flags = array(
  22. FilesystemIterator::CURRENT_AS_FILEINFO => 0,
  23. FilesystemIterator::CURRENT_AS_SELF => 0,
  24. FilesystemIterator::CURRENT_AS_PATHNAME => 1,
  25. );
  26. foreach($flags as $flag => $isstring) {
  27. $obj->setFlags($flag);
  28. $obj->rewind();
  29. var_dump($obj->getFlags());
  30. if ($isstring) {
  31. $val = $obj->current();
  32. if (is_string($val)) {
  33. var_dump(true);
  34. } else {
  35. var_dump($val);
  36. }
  37. } else {
  38. echo get_class($obj->current()) . "\n";
  39. }
  40. }
  41. }
  42. }
  43. ?>
  44. --EXPECTF--
  45. ===DirectoryIterator===
  46. DirectoryIterator
  47. ===FilesystemIterator===
  48. SplFileInfo
  49. int(%d)
  50. int(0)
  51. SplFileInfo
  52. int(16)
  53. FilesystemIterator
  54. int(32)
  55. bool(true)
  56. ===RecursiveDirectoryIterator===
  57. SplFileInfo
  58. int(0)
  59. int(0)
  60. SplFileInfo
  61. int(16)
  62. RecursiveDirectoryIterator
  63. int(32)
  64. bool(true)
  65. ===GlobIterator===
  66. SplFileInfo
  67. int(0)
  68. int(0)
  69. SplFileInfo
  70. int(16)
  71. GlobIterator
  72. int(32)
  73. bool(true)