bug80724.phpt 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. --TEST--
  2. Bug #80724 (FOLLOW_SYMLINKS interfering with FilesystemIterator key flags)
  3. --FILE--
  4. <?php
  5. $iterator = new FilesystemIterator(__DIR__, FilesystemIterator::KEY_AS_FILENAME);
  6. foreach ($iterator as $key => $value) {
  7. echo var_dump(hasSeparator($key));
  8. break;
  9. }
  10. $iterator->rewind();
  11. echo var_dump(hasSeparator($iterator->key()));
  12. $iterator->setFlags(0);
  13. echo var_dump(hasSeparator($iterator->key()));
  14. $iterator->setFlags(FilesystemIterator::KEY_AS_FILENAME);
  15. echo var_dump(hasSeparator($iterator->key()));
  16. $iterator2 = new FilesystemIterator(__DIR__, FilesystemIterator::FOLLOW_SYMLINKS | FilesystemIterator::KEY_AS_FILENAME);
  17. foreach ($iterator2 as $key => $value) {
  18. echo var_dump(hasSeparator($key));
  19. break;
  20. }
  21. $iterator2->rewind();
  22. echo var_dump(hasSeparator($iterator2->key()));
  23. $iterator2->setFlags(0);
  24. echo var_dump(hasSeparator($iterator2->key()));
  25. $iterator2->setFlags(FilesystemIterator::KEY_AS_FILENAME);
  26. echo var_dump(hasSeparator($iterator2->key()));
  27. function hasSeparator($key) {
  28. return str_contains($key, __DIR__ . DIRECTORY_SEPARATOR);
  29. }
  30. ?>
  31. --EXPECT--
  32. bool(false)
  33. bool(false)
  34. bool(true)
  35. bool(false)
  36. bool(false)
  37. bool(false)
  38. bool(true)
  39. bool(false)