dit_002.phpt 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. --TEST--
  2. SPL: DirectoryIterator defaults
  3. --SKIPIF--
  4. <?php if (!extension_loaded("spl") || !extension_loaded('reflection') || !defined('GLOB_ERR')) print "skip"; ?>
  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. ===DONE===
  45. --EXPECTF--
  46. ===DirectoryIterator===
  47. DirectoryIterator
  48. ===FilesystemIterator===
  49. SplFileInfo
  50. int(%d)
  51. int(0)
  52. SplFileInfo
  53. int(16)
  54. FilesystemIterator
  55. int(32)
  56. bool(true)
  57. ===RecursiveDirectoryIterator===
  58. SplFileInfo
  59. int(0)
  60. int(0)
  61. SplFileInfo
  62. int(16)
  63. RecursiveDirectoryIterator
  64. int(32)
  65. bool(true)
  66. ===GlobIterator===
  67. SplFileInfo
  68. int(0)
  69. int(0)
  70. SplFileInfo
  71. int(16)
  72. GlobIterator
  73. int(32)
  74. bool(true)
  75. ===DONE===