我正在玩PHP RecursiveDirectoryItorator,但是我发现由于某些原因,我的一些变量超出了范围,因为它们应该在范围内......除非我真的错过了什么。我试图访问的两个变量是$ master_array和$ current,如果我在我的else语句中回显或print_r它们,则两者都没有任何值。这是我的代码:
$master_array = array();
$startpath = "some file path"; // i'm using a real file path in my code.
$ritit = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($startpath), RecursiveIteratorIterator::CHILD_FIRST);
foreach($ritit as $fileinfo) {
echo "<pre>";
$current = '';
if(!$fileinfo->isFile()) {
if(strip_replace($fileinfo->getFilename()) == strip_replace('some - title')) {
$master_array[$fileinfo->getFilename()] = $fileinfo->getPathname();
$current = $fileinfo->getFilename();
}
} else {
if(!empty($current) && in_array($current, split_file_path_into_array($fileinfo->getPathname()))) {
echo $fileinfo->getFilename()."\n";
echo $fileinfo->getPathname()."\n";
}
echo $current; // i don't have access to this
print_r($master_array); // and i don't have access to this.
}
}
对此的任何帮助将不胜感激。我希望我只是忽略了一些简单的东西,但是我一直在看这段代码,并且在相当长的一段时间内搞乱它,似乎无法让它发挥作用。
答案 0 :(得分:1)
$current
应该是数组而不是字符串
$current = array();
并且$current
将始终为空,因为您在其他内部调用它并在if's if
内分配值。