Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Funkcja nie działa jak należy
Forum PHP.pl > Forum > PHP
jakubjk
Mam taką funkcję - powinna ona najpierw zwiększyć liczbę o 1 i ją wyświetlić, a następnie znowu ją wyświetlić. Zamiast tego wyświetla 3 i 2, a powinna dwie trójki. Dlaczego tak jest?

  1. <?php
  2.  
  3. $liczba=2;
  4.  
  5. function zwiekszliczbe($liczba)
  6. {
  7. $liczba++;
  8. echo $liczba;
  9. }
  10. function wyswietlliczbe($liczba)
  11. {
  12. echo $liczba;
  13. }
  14.  
  15. zwiekszliczbe($liczba);
  16. wyswietlliczbe($liczba);
  17.  
  18. ?>
cadavre
Zmienne dostarczane jako argumenty funkcji są klonowane, nie są przekazywane ich wskaźniki.
Tutaj masz info z manuala dokładnie z Twoim przykładem:
http://php.net/manual/en/language.references.pass.php
BTW Doczytaj 'Note'.

Generalnie jednak pisany w ten sposób kod jest bardzo słabo czytelny. Sugeruję takie rozwiązanie:
  1. <?php
  2.  
  3. $liczba=2;
  4.  
  5. function zwiekszliczbe($liczba)
  6. {
  7. return ++$liczba;
  8. }
  9. function wyswietlliczbe($liczba)
  10. {
  11. echo $liczba;
  12. }
  13.  
  14. wyswietlliczbe($liczba);
  15. $liczba = zwiekszliczbe($liczba);
  16. wyswietlliczbe($liczba);
  17.  
  18. ?>
  19.  
jakubjk
Dziękuję 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.