我正在尝试调用函数内部的函数,但它没有被调用,也没有出现错误。
我创建了一个$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)
那么请告诉我。