Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: global w funkcji
Forum PHP.pl > Forum > Przedszkole
Bastion
Mam takie pytanie, przypuscmy ze mam zmienna $zmienna1 zawierajaca powiedzmy 20kB tekstu ,
i teraz chcialbym aby zmienna byla widoczna w kilku funkcjach na przyklad :

$zmienna1 = ".....20kB...."

function foo1() {
global $zmienna1;
...
}

function foo2() {
global $zmienna1;
...
}

function foo3() {
global $zmienna1;
...
}

Moje pytanie brzmi , czy uzycie global powoduje ze zmienna jest widoczna w kazdej z funkcji
w ktorej jest uzyta czy nastepuje kopiowanie zawartosci zmiennej do podfunkcji. Pytam ze wzgledu
na ergonomie w obawie ze zmienna jest powielana i zabiera tyle razy wiecej pamieci ile razy
uzyta jest w funkcjach.
tiraeth
global -> Powoduje ona, że na zmiennej ($zmienna1) będzie można operować tak samo, jak na lokalnej (czyli poza funkcją), a jeżeli funkcja zmieni jej wartość, po zakończeniu działania pozostanie ona zmieniona.

(na podstawie: php4 - ćwiczenia praktyczne)
np.
  1. <?php
  2. $a = 1;
  3. $b = 2;
  4.  
  5. function Suma()
  6. {
  7.  global $a, $b;
  8.  
  9.  $b = $a + $b;
  10. }
  11.  
  12. Suma();
  13. echo $b;
  14. ?>

Przy ustawieniu global $a, $b w środku zmiennej nie ma już znaczenia czy poza funkcją zmienna $b została zdeklarowana jako 2 gdyż w funkcji została zastąpiona sumą $a i $b smile.gif Wynik: 3
invx
  1. <?php
  2.  
  3. function xxx ($a)
  4. {
  5. //...
  6. return $a;
  7. }
  8.  
  9. ?>

i w tedy tez bedziesz mial ja jako globalna smile.gif
dr_bonzo
@invx: w twoim kodzie wystapi KOPIOWANIE zawartosci zmiennej, czego on chcial uniknac.
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.