Сортировка файлов с DirectoryIterator

От FxCop управляют страницей на этом:

после маркировки методов как статичные компилятор испустит сайты невиртуального вызова этим участникам. Испускание сайтов невиртуального вызова предотвратит проверку во времени выполнения для каждого вызова, который гарантирует, что текущий объектный указатель является непустым. Это может привести к измеримому увеличению производительности для чувствительного к производительности кода. В некоторых случаях отказ получить доступ к текущему экземпляру объекта представляет проблему правильности.

8
задан Charles 23 December 2012 в 21:43
поделиться

1 ответ

Филипп В. написал хороший пример: http://php.oregonstate.edu/manual/en/directoryiterator.isfile.php

function cmpSPLFileInfo( $splFileInfo1, $splFileInfo2 )
{
    return strcmp( $splFileInfo1->getFileName(), $splFileInfo2->getFileName() );
}

class DirList extends RecursiveDirectoryIterator
{
    private $dirArray;

    public function __construct( $p )
    {
        parent::__construct( $p );
        $this->dirArray = new ArrayObject();
        foreach( $this as $item )
        {
            $this->dirArray->append( $item );
        }
        $this->dirArray->uasort( "cmpSPLFileInfo" );
    }

    public function getIterator()
    {
        return $this->dirArray->getIterator();
    }

}
2
ответ дан 5 December 2019 в 22:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: