Я пытаюсь вызвать функцию внутри функции, но она не вызывается, и никакой ошибки не появляется.
Я создал $addFile
функция для повторного использования в инструкции switch ниже.
public function findFilesBySize($path, $size)
{
if((!is_array($size)) || (count($size) != 2))
throw new \Exception("Second parameter should be array of comparison operator and value", 1);$path = (is_dir($path)) ? $path : getcwd();
$files = array();
$addFiles = function(array $files, \DirectoryIterator $file )
{
die('working'); // function not getting called
$files[] = $file->getFileName();
};
$iterator = new \DirectoryIterator($path);
foreach ($iterator as $file) {
if($file->isDir())
continue;
switch ($size[0]) {
case '<':
if($file->getSize() < $size[1]) {
$addFiles($files, $file);
}
break;
case '>':
if($file->getSize() > $size[1]) {
$addFiles($files, $file);
}
break;
default:
# code...
break;
}
}
return $files;
}
Дополнительная / дополнительная часть:
Мне не нравится подход переключения, и если кто-то может предложить какой-либо хороший подход, чтобы сделать if($file->getSize() $operator $value)
тогда, пожалуйста, дайте мне знать.
Задача ещё не решена.
Других решений пока нет …