【发布时间】:2011-12-06 17:22:55
【问题描述】:
希望你能帮我解答这个问题!
Index.php
include_once 'files.class.php';
$file_object = new FileObject('resources');
$file_object->ReturnCurrentDirectoryList();
files.class.php
class FileObject{
public $directory_list;
function __construct($current_directory_in){
$this->directory_list = $this->BuildCurrentDirectoryList($current_directory_in);
}
function BuildCurrentDirectoryList($current_directory_in){
$i = 0;
$iterator = new DirectoryIterator($current_directory_in);
foreach ($iterator as $fileinfo){
if ($fileinfo->isDir()){
$this->directory_list[$i]['pathname'] = $fileinfo->getPathname();
}elseif($fileinfo->isFile()){
$this->directory_list[$i]['filename'] = $fileinfo->getFilename();
}
$i++;
}
}
function ReturnCurrentDirectoryList(){
var_dump($this->directory_list);
}
}
这一切结束后,返回的是
null
但是应该返回的是
array 0 => array 'pathname' => string 'resources\.', 1 => array 'pathname' => string 'resources\..', 2 => array 'pathname' => string 'resources\Images'
我对类/方法有点陌生..
【问题讨论】:
-
只需吐出一些调试打印/vardumps 即可找出问题所在
-
我一直在使用 var_dump 来检查它,但是在
BuildCurrentDirectoryList()的末尾一切看起来都很好,然后在ReturnCurrentDirectoryList()中吐出一个null。不知道为什么或我能做些什么来删除它。 -
你用函数
BuildCurrentDirectoryList的返回覆盖你的$this->directory_list属性(在construct() 中),它不返回任何东西。