Shylios Opublikowano 9 Sierpnia 2008 Udostępnij Opublikowano 9 Sierpnia 2008 Mam proste pytanko, Jak wykonać funkcje w funkcji? A dokładniej tą samą, coś w stylu: <?php function lol() { $file=fopen("1.txt","w"); fwrite($file,"1\r\n"); fclose($file); lol(); }; lol(); ?> Że funkcja sama siebie wykonuje, jest możliwe? Nie chodzi mi o powtarzanie jakiejś czynności X razy! Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności Ranmus Opublikowano 9 Sierpnia 2008 Filar Społeczności Udostępnij Opublikowano 9 Sierpnia 2008 Chodzi Ci o funkcje rekursywna. Oczywiscie, ze jest mozliwe, tylko musisz ja tak skonstruowac, zeby sie nie zapetlila. Ogolnie tego typu funkcje stosuje sie glownie w scisle okreslonych problemach, a jak takich nie zauwazasz, to nie musisz korzystac z rekursji, bo program ma byc maksymalnie prosty i zrozumialy przez Ciebie. Nic na sile. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Shylios Opublikowano 9 Sierpnia 2008 Autor Udostępnij Opublikowano 9 Sierpnia 2008 Czyli jak to skonstruować? - Zapętlać się nie będzie, bo robie skrypt który sam chodzi po folderach i robi listę plików Coś w stylu: function funckaj_skanowania_folderu{ if (is_dir($dir."\\".$file)) { funckaj_skanowania_folderu($dir."\\".$file);}; }; Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Excolo Opublikowano 12 Sierpnia 2008 Udostępnij Opublikowano 12 Sierpnia 2008 Po pierwsze, jak już to function funkcja_skanowania_folderu($to,$tamto){ //treść funkcji } Po drugie zupełnie nie mam pojęcia, co chcesz uzyskać. Z tego co tu napisałeś nic by nie wyszło, bo jedyną czynnością wykonywaną przez funkcję jest ponowne wywoływanie samej siebie. W przypadku, w którym chcesz na przykład pobrać listę plików w folderze absolutnie nie warto uciekać się do rekurencji, wystarczy użyć scandir();. Z tym, że scandir działa tylko pod PHP5 bodajże... Ale zawsze można zakombinować tak, jak mówi manual PHP: <?php $dir = "/tmp"; $dh = opendir($dir); while (false !== ($filename = readdir($dh))) { $files[] = $filename; } sort($files); print_r($files); rsort($files); print_r($files); ?> Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Shylios Opublikowano 12 Sierpnia 2008 Autor Udostępnij Opublikowano 12 Sierpnia 2008 scandir nie wyświetli mi co mają w sobie foldery znajdujące się w przeszukiwanym folderze :P Sprawdzam ten Twój skrypt :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Excolo Opublikowano 12 Sierpnia 2008 Udostępnij Opublikowano 12 Sierpnia 2008 O rany. Skryptu nie sprawdzaj, bo zwróci w zasadzie to, co scandir. Skoro chcesz mieć całe drzewo katalogów i listy plików, to po prostu zrób pętlę. Sprawdzaj po kolei każdy element tablicy zwróconej przez scandir, jeśli jest folderem, jeszcze raz scandir and so on. Btw jeśli chcesz, żeby skrypt naprawdę SAM sporządzał to drzewo, to musisz pobawić się cronem. Btw. ten skrypt nie jest mój, to przykład z manuala PHP, i stąd zwraca dwie tablice (jedna niepotrzebna, różnią się kolejnością elementów). Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się