Регистрация Войти
Войти через VK Войти через FB Войти через Google Войти через Яндекс
Войти через VK Войти через FB Войти через Google Войти через Яндекс
Поиск по сайту
Класс CallbackFilterIterator
(PHP 5 >= 5.4.0)
Введение
Обзор классов
CallbackFilterIterator extends FilterIterator implements Iterator , Traversable , OuterIterator {
/* Методы */
public __construct ( Iterator $iterator , callback $callback )
public string accept ( void )
/* Наследуемые методы */
abstract bool FilterIterator::accept ( void )
FilterIterator::__construct ( Iterator $iterator )
mixed FilterIterator::current ( void )
Iterator FilterIterator::getInnerIterator ( void )
mixed FilterIterator::key ( void )
void FilterIterator::next ( void )
void FilterIterator::rewind ( void )
bool FilterIterator::valid ( void )
}
Примеры
Обратный вызов может принимать до трех аргументов: текущий элемент, текущий ключ и итератор соответственно.
Пример #1 Доступные аргументы обратного вызова
/**
* Обратный вызов для CallbackFilterIterator
*
* @param $current Значение текущего элемента
* @param $key Ключ текущего элемента
* @param $iterator Фильтруемый итератор
* @return boolean TRUE для принятия текущего элемента, иначе - FALSE
*/
function my_callback($current, $key, $iterator) {
// Your filtering code here
}
Любой callback может быть использован. Например, строка, содержащая имя функции, массив для метода или анонимная функция.
Пример #2 Основные примеры обратного вызова
$dir = new FilesystemIterator(__DIR__);
// Фильтр больших файлов ( > 100MB)
function is_large_file($current) {
return $current->isFile() && $current->getSize() > 104857600;
}
$large_files = new CallbackFilterIterator($dir, 'is_large_file');
// Фильтр каталогов
$files = new CallbackFilterIterator($dir, function ($current, $key, $iterator) {
return $current->isDir() && ! $iterator->isDot();
});
Содержание
- CallbackFilterIterator::accept — Calls the callback with the current value, the current key and the inner iterator as arguments
- CallbackFilterIterator::__construct — Create a filtered iterator from another iterator
Описание класса callbackfilteriterator, примеры использования класса callbackfilteriterator.
Смотрите также:
Описание на ru2.php.net
Описание на php.ru