Клас RecursiveCallbackFilterIterator
(PHP 5 >= 5.4.0, PHP 7, PHP 8)
Вступ
Огляд класів
class RecursiveCallbackFilterIterator
extends
CallbackFilterIterator
implements
RecursiveIterator {
/* Методы */
public __construct(RecursiveIterator $iterator, callable $callback)
public getChildren(): RecursiveCallbackFilterIterator
public hasChildren(): bool
/* Наследуемые методы */
public CallbackFilterIterator::accept(): bool
public FilterIterator::accept(): bool
public FilterIterator::current(): mixed
public FilterIterator::key(): mixed
public FilterIterator::next(): void
public FilterIterator::rewind(): void
public FilterIterator::valid(): bool
public IteratorIterator::current(): mixed
public IteratorIterator::getInnerIterator(): ?Iterator
public IteratorIterator::key(): mixed
public IteratorIterator::next(): void
public IteratorIterator::rewind(): void
public IteratorIterator::valid(): bool
}
Приклади
Callback-функція може приймати до трьох аргументів: поточний елемент, поточний ключ та ітератор відповідно.
Приклад #1 Доступні аргументи callback-функції
Loading...
Фільтрація рекурсивного ітератора зазвичай включає дві умови. Перше у тому, щоб дозволити рекурсію. Callback-функція має повертати **true
**якщо поточний елемент ітератора має нащадків. Друге - це нормальна умова фільтра, наприклад, перевірка розміру файлу чи розширення, як у наведеному нижче прикладі.
Приклад #2 Простий приклад рекурсивного зворотного виклику
Loading...
Зміст
- RecursiveCallbackFilterIterator::__construct— Створює об'єкт класу RecursiveCallbackFilterIterator на основі об'єкта RecursiveIterator
- RecursiveCallbackFilterIterator::getChildren— Повертає дочірні елементи ітератора, що зберігається всередині RecursiveCallbackFilterIterator
- RecursiveCallbackFilterIterator::hasChildren— Перевіряє, чи поточний елемент внутрішнього ітератора містить дочірні елементи.