Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: rekurencja w PHP5, problem
Forum PHP.pl > Forum > PHP
Moby04
Mam pewien problem z dość banalnym skryptem PHP operującym na stringu. Sam skrypt w obecnej postaci jest wprawdzie całkowicie bezużyteczny i wiem, jak to naprawić (patrz: komentarz) jednak przy uruchomieniu tego w takiej postaci przeglądarka zachowuje się bardzo dziwnie:

  1. <?php 
  2. function reverse($string)
  3. {
  4. if(strlen($string)>0)
  5. reverse($string); //tu powinno byc reverse(substr($string, 1));
  6. echo substr($string, 0, 1);
  7. return;
  8. }
  9. reverse("Hello");
  10. ?>


Otóż przy próbie odpalenia tego z localhost (Apache2 na Ubuntu 7.4 z PHP w wersji 5.2.1, skrypt uruchamiany za pomocą przeglądarki Firefox 2.0) zamiast wyświetlić skrypt pojawia się... okienko pobierania pliku. Dlaczego? Myślałem początkowo, że to efekt wywołania nieskończonej rekurencji jednak przy próbie uruchomienia innej, też nieskończonej, rekurencji (przedstawionej poniżej) skrypt wykonuje się a wyniki zostają wyświetlone (maksymalna wyświetlona wartość to 18271). Dlaczego tak się dzieje?

  1. <?php 
  2. function rekurencja()
  3. {
  4. static $i = 1;
  5. echo $i++."<br />n";
  6. rekurencja();
  7. return;
  8. }
  9. rekurencja("Hello");
  10. ?>
sticker
ad 1 nie mam pojęcia
ad 2 to może być wina apacha kończy sie timeout wykonywania skryptu i go po prostu zabija
Moby04
^up^

Dzieki za odpowiedz smile.gif
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.