Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Funkcja nie działa jak należy
jakubjk
post 14.09.2013, 14:10:00
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 14.09.2013

Ostrzeżenie: (0%)
-----


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. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
cadavre
post 14.09.2013, 14:23:37
Post #2





Grupa: Zarejestrowani
Postów: 472
Pomógł: 7
Dołączył: 7.12.2005
Skąd: Gliwice

Ostrzeżenie: (0%)
-----


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.  


Ten post edytował cadavre 14.09.2013, 14:26:29


--------------------
Silesian PHP User Group - www.spug.pl
Symfony2, OAuth2, budowanie API - masz pytania? Pisz!
Go to the top of the page
+Quote Post
com
post 14.09.2013, 14:30:46
Post #3





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

Ostrzeżenie: (0%)
-----


http://ideone.com/qlj7d6 wink.gif

http://php.net/manual/pl/language.variables.scope.php
Go to the top of the page
+Quote Post
jakubjk
post 14.09.2013, 14:39:16
Post #4





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 14.09.2013

Ostrzeżenie: (0%)
-----


Dziękuję smile.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 02:11