Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]funkcja zagnieżdżone i opendir x2
Forum PHP.pl > Forum > Przedszkole
michau666
Witam,

mam 2 pytania teoretyczne:
  1. Czy można zagnieżdżać we własnej funkcji inną własną funkcję?
  2. Czy można korzystając z otwartego folderu czytając jego zawartość otworzyć nastepny, zczytać go, zamknąć i dopiero po tym zamknąć drugi?
A tak dodatkowo to czy wykorzystanie drzewka folderów do skonstuowania menu rowijanego jest dobrym pomyslem czy to pomysl zeby sie napracować a wyniki i tak beda marne?
nevt
ad.1. można, ale efekt nie będzie taki jak się spodziewasz. funkcja zdefiniowana wewnątrz innej funkcji jest nadal funkcją globalną. jedyna różnica, to fakt ze zostaje ona zdefiniowana dopiero w momencie wywołania funkcji macierzystej. co gorsza wywołanie funkcji macierzystej więcej niż raz spowoduje błąd redeklaracji funkcji, np.:
  1. <?php
  2. function a()
  3. {
  4. function b()
  5. {
  6. echo 'B';
  7. }
  8. echo 'A';
  9. b();
  10. }
  11.  
  12. b(); // funkcja b() nie istnieje - Fatal error: Call to undefined function b() in ...
  13. a(); // OK - AB
  14. b(); // OK - teraz funcja b() już jest zdefiniowana - ABB
  15. a(); // redeklaracja funkcji b() - Fatal error: Cannot redeclare b() (previously declared in ...) in ...
  16. ?>


ad.2. można, ale zdecydowanie odradzam zastosowanie do budowania systemu menu. rozwiązanie będzie zależne od systemu operacyjnego, systemu plików oraz uprawnień dostępu do niego (utrudnienia na niektórych hostingach). jeżeli nie chcesz sie bawić z bazą danych to zdecydowanie polecam pliki w standardzie XML do budowania wszelkich drzewiastych struktur

pozdrawiam.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.