Why is my class throwing warnings?

liunx

Guest
Why is this code throwing the following errors? Thanks.


<?
class DirTree {

/**
* Get a tree of folders and files from a spec dir
* @returns An ArrayCollection of Tree
*/
function DirTree($dir_tree) {
$_tree = $this->parse_dir($dir_tree);
return $_tree;
}

/**
* Get a tree of folders and files from a spec dir
* @returns An Array of Tree
*/
function parse_dir($folder) {

$dir = @opendir($folder);
$filecount = 0;
$foldercount= 0;
$tree= array();
$limb= array();
$cnt= 0;

while(false != ($item = @readdir($dir))) {

if($item == "." || $item == "..") continue;

if(is_dir("$folder/$item")){

$tmpTree = new DirTree();

$limb['sub_folder'][]['folder_name'] = $item;
$limb['sub_folder'][] = $tmpTree->parse_dir("$folder/$item");

$foldercount++;
$limb['folders'][] = $foldercount;

$filecount++;
$limb['files'][] = $filecount;
//continue;

}else{

$limb['file_name'][] = $item;

}
}

$tree[] = $limb;
$cnt++;
return $tree;

}
}

$class = new DirTree();

/* view array */
echo "<pre>";
print_r($class->DirTree("../../core/amf/app"));
echo "</pre>*****************************************************************";
?>


Warning: Missing argument 1 for DirTree::DirTree() in C:\apache2triad\htdocs\flashservices_v1.9\services\folder_tree\dir_tree2.php on line 8

Notice: Undefined variable: dir_tree in C:\apache2triad\htdocs\flashservices_v1.9\services\folder_tree\dir_tree2.php on line 9

Warning: Missing argument 1 for DirTree::DirTree() in C:\apache2triad\htdocs\flashservices_v1.9\services\folder_tree\dir_tree2.php on line 8

Notice: Undefined variable: dir_tree in C:\apache2triad\htdocs\flashservices_v1.9\services\folder_tree\dir_tree2.php on line 9

Warning: Missing argument 1 for DirTree::DirTree() in C:\apache2triad\htdocs\flashservices_v1.9\services\folder_tree\dir_tree2.php on line 8

Notice: Undefined variable: dir_tree in C:\apache2triad\htdocs\flashservices_v1.9\services\folder_tree\dir_tree2.php on line 9

Warning: Missing argument 1 for DirTree::DirTree() in C:\apache2triad\htdocs\flashservices_v1.9\services\folder_tree\dir_tree2.php on line 8

Notice: Undefined variable: dir_tree in C:\apache2triad\htdocs\flashservices_v1.9\services\folder_tree\dir_tree2.php on line 9

Warning: Missing argument 1 for DirTree::DirTree() in C:\apache2triad\htdocs\flashservices_v1.9\services\folder_tree\dir_tree2.php on line 8

Notice: Undefined variable: dir_tree in C:\apache2triad\htdocs\flashservices_v1.9\services\folder_tree\dir_tree2.php on line 9You have one issue. When you instantiate your class, you are required to pass to it one argument: the directory.

You specify this with the function declaration:
function DirTree($dirtree) {
If you want to make the directory optional, you need to specify a default value:
function DirTree($dirtree='./') {
Once you fix those issues, the other ones will go away.

So you have two choices:
(1) Start sending an argument with the $tempDir = new DirTree() call in the while(){} loop, or
(2) Make sending the argument option as stated above.
 
Back
Top