簡體   English   中英

RecursiveIterator 沒有按預期工作

[英]RecursiveIterator not working as expected

這是我的 function:

protected function getContents($absoluteDirectoryPath = false, $recursive = false, $filter = "/.$/") {
    if(!$absoluteDirectoryPath) return false;
    $iterator  = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($absoluteDirectoryPath));
    $files = new RegexIterator($iterator, $filter);
    return $iterator;
}

我這樣稱呼它:

$pageFiles = $this->getContents($pagepath);

foreach($pageFiles as $file) {
    echobr("PageFile: " . $file->fileName);
}

這是我得到的錯誤:

Notice: Undefined property: SplFileInfo::$fileName

如果我 var_dump $pageFiles我得到這個:

object(DirectoryIterator)#5 (4) {
  ["pathName":"SplFileInfo":private]=>
  string(68) "/home/domain/example/public/home/home.php"
  ["fileName":"SplFileInfo":private]=>
  string(12) "home.php"
  ["glob":"DirectoryIterator":private]=>
  bool(false)
  ["subPathName":"RecursiveDirectoryIterator":private]=>
  string(0) ""
}

這是怎么回事? 為什么我不能遍歷結果? 這個目錄有4個文件,我應該可以output文件名。

SplFileInfo class fileName (公共) filename或文件名屬性。 但是,它有一個getFilename()方法。 您可以使用它來獲取文件名:

foreach($pageFiles as $file) {
    echobr("PageFile: " . $file->getFilename());
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM