У меня есть следующая функция, когда я пытаюсь вернуть vaule только одну папку 1, но когда я повторяю функцию, она отображает правильную информацию.return in function не работает, но echo работает в PHP
PHP код:
$FolderList = "";
function ListFolder($path) {
$path = str_replace("//","/",$path);
//using the opendir function
$dir_handle = @opendir($path) or die("Unable to open $path");
//Leave only the lastest folder name
$dirname = end(explode("/", $path));
//display the target folder.
$FolderList .= ('<option value="">'.$path.'</option>');
while(false !== ($file = readdir($dir_handle))) {
if($file!="." && $file!="..") {
if(is_dir($path."/".$file)) {
//Display a list of sub folders.
ListFolder($path."/".$file);
}
}
}
//closing the directory
closedir($dir_handle);
return $FolderList; //ERROR: Only Shows 1 Folder
echo $FolderList; //WORKS: Show All The Folders Correctly
}
Благодаря
Я считаю, что это имеет отношение к области видимости, но мой мозг не работает достаточно хорошо, прямо сейчас, чтобы понять это ... Вы определяете $ FolderList вне функции и I что вы получаете ненадежные результаты, если вы не определяете переменную как статическую и/или глобальную. – Patrick
Связанное сообщение: http://stackoverflow.com/questions/4204728/how-to-display-folders-and-sub-folders-from-dir-in-php? –
Я пробовал его внутри функции и что-то происходит – Rickstar