Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]problem z prostą tablicą
Forum PHP.pl > Forum > Przedszkole
elglt
witam,

  1. $zmienna = 1;
  2. function funkcja()
  3. {
  4. for($i=0; $i<10; $i++)
  5. {
  6. $zmienna= $zmienna+1;
  7. }
  8. }
  9. funkcja();
  10. echo $zmienna;


dlaczego echo wyswietli 1 a nie 11?
i jak moglbym sobie zrobic wyraz z x-gwiazdeczkami poniewaz ponizszy kod tez nie daje efektu:


  1. function funkcja()
  2.  
  3. {
  4. for($i=0; $i<10; $i++)
  5. {
  6. $gwiazdeczki[i] += '*';
  7. }
  8. }
  9. funkcja();
  10.  
  11. echo $gwiazdeczki;
frantic09
Do pierwszego, tak jak pisze Ociu, dodam, że musisz użyć słowa global, żeby przechwycić zmienna globalną w swojej funkcji.

Co do drugiego:
  1. function funkcja()
  2. {
  3. for($i=0; $i<10; $i++)
  4. {
  5. $gwiazdeczki[i] += '*'; //skąd ta zmienna się bierze? masz pojęcie, że tworzysz (niepoprawnie z resztą) tablicę?
  6. }
  7. }
  8. funkcja();
  9. echo $gwiazdeczki;


I jeśli masz tworzyć wyraz z X gwiazdek, to może przekaż tą liczbę do funkcji jako parametr?

  1. function funkcja($x){
  2. //tworzysz pustą zmienną
  3. $tekst = '';
  4.  
  5. //prosty for z X iteracjami
  6. for($i=0; $i<$x; $i++) {
  7. //operatorem konkatenacji tekstów jest KROPA "." a NIE PLUS! Plusa używasz np w Java, Javascript
  8. $tekst .= '*';
  9. }
  10. //funkcja zwróci utworzony tekst
  11. return $tekst;
  12. }
  13.  
  14. echo funkcja(10);
thek
frantic09... globale to zuo. Od tego są parametry i return by z tego korzystać przy używaniu funkcji, a nie lecieć globalami i innymi cudami, które powodują tylko problemy przy przegladaniu kodu, bo zmienna z niewiadomego powodu potem zmienia wartośc i nikt nie wie jak oraz czemu.
wpaski
A więc zamiast global tak:
  1. <?php
  2.  
  3. function funkcja($zmienna)
  4. {
  5.  
  6. for($i=0; $i<10; $i++)
  7. {
  8. $zmienna++;
  9. }
  10. return $zmienna;
  11. }
  12. echo funkcja(1);
  13.  
  14.  
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.