0

我正在使用 PHP RecursiveDirectoryItorator,但我发现由于某种原因,我的一些变量应该在范围内时超出了范围......除非我真的错过了一些东西。我试图访问的两个变量是 $master_array 和 $current,如果我在 else 语句中 echo 或 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.  

        }
    }   

对此的任何帮助将不胜感激。我希望我只是忽略了一些简单的事情,但我一直在查看这段代码,并且把它弄乱了很长一段时间,似乎无法让它工作。

4

1 回答 1

1

$current应该是数组而不是字符串

$current = array();

并且$current将始终为空,因为您在 else 内部调用它并在内部分配值if's if

于 2013-04-01T06:51:22.780 回答