A classe CallbackFilterIterator

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

Introdução

Resumo da classe

class CallbackFilterIterator extends FilterIterator {
/* Métodos */
public __construct(Iterator $iterator, callable $callback)
public accept(): bool
/* Métodos herdados */
}

Exemplos

O callback deve aceitar até três argumentos: o item atual, a chave atual e o iterador, respectivamente.

Example #1 Argumentos de callback disponíveis

<?php

/**
 * Callback para CallbackFilterIterator
 *
 * @param $current   Valor do item atual
 * @param $key       Chave do item atual
 * @param $iterator  Iterador sendo filtrado
 * @return boolean   TRUE para aceitar o item atual, FALSE caso contrário
 */
function my_callback($current, $key, $iterator) {
    // Seu código de filtragem aqui
}

?>

Qualquer callable pode ser usado; como uma string contendo um nome de função, uma matriz para um método ou uma função anônima.

Example #2 Exemplos básicos de callback

<?php

$dir = new FilesystemIterator(__DIR__);

// Filtrar arquivos grandes ( > 100MB)
function is_large_file($current) {
    return $current->isFile() && $current->getSize() > 104857600;
}
$large_files = new CallbackFilterIterator($dir, 'is_large_file');

// Filtrar diretórios
$files = new CallbackFilterIterator($dir, function ($current, $key, $iterator) {
    return $current->isDir() && ! $iterator->isDot();
});

?>

Table of Contents