Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> global w funkcji
Bastion
post
Post #1





Grupa: Zarejestrowani
Postów: 505
Pomógł: 0
Dołączył: 8.01.2005

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


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.
Go to the top of the page
+Quote Post
tiraeth
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 789
Pomógł: 41
Dołączył: 30.10.2003
Skąd: Wrocław

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


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 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Wynik: 3
Go to the top of the page
+Quote Post
invx
post
Post #3





Grupa: Zablokowani
Postów: 655
Pomógł: 0
Dołączył: 28.11.2003
Skąd: Zagórz

Ostrzeżenie: (80%)
XXXX-


  1. <?php
  2.  
  3. function xxx ($a)
  4. {
  5. //...
  6. return $a;
  7. }
  8.  
  9. ?>

i w tedy tez bedziesz mial ja jako globalna (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował invx 27.01.2005, 20:18:59
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


@invx: w twoim kodzie wystapi KOPIOWANIE zawartosci zmiennej, czego on chcial uniknac.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 13:36