Ayrıca soyut FilterIterator
class uzatarak isImage
işlevini kullanarak bir DirectoryIterator
içeriğini filtre SPL faydalanmak olabilir.
class ImageIterator extends FilterIterator {
public function __construct($path)
{
parent::__construct(new DirectoryIterator($path));
}
public function accept()
{
return isImage($this->getInnerIterator());
}
}
Daha sonra iterator_count
kullanın (veya Countable
arabirimini uygulayan ve yerli count
işlevini kullanabilirsiniz) görüntü sayısını belirlemek için olabilir. Örneğin:
$images = new ImageIterator('/path/to/images');
printf('Found %d images!', iterator_count($images));
Bu yaklaşımı kullanarak, bu kodu kullanmanız gerekir nasıl bağlı, her şeyin düzgün bir yerde sarılmış olması ImageIterator
sınıfa isImage
işlevi taşımak daha mantıklı olabilir.