Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] $GLOBALS['var'] a global $var - roznice
erix
post
Post #1





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Witam!

Czy sa jakies roznice (wydajnosc, bezpieczenstwo, wylaczajac zasieg) w operowaniu na zmiennych przez superglobalna $GLOBALS a wczesniejsza jej 'globalizacja' przez global?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
siemakuba
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 112
Pomógł: 20
Dołączył: 10.04.2005

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


zmienne które z natury mają zasięg globalny to takie których nie definiujesz wewnątrz funkcji, metody, które nie są wartościami w klasie. Zmienne te będziesz miał dostępne w tablicy $GLOBALS, czy zadeklarujesz je tam jawnie ($GLOBALS['a'] = 'b';) czy nie ($a = 'b'; -> tu oczywiście deklaracja musi być tam gdzie zasięg jest globalny).

Pomijając fakt, że powinno się dążyć do programowania w taki sposób aby korzystanie z globalnych zmiennych przez $GLOBALS czy global $zmienna nie było konieczne, jedyna różnica jaką widzę to wygoda.

Potrzebując w funkcji dużo zmiennych globalnyych musisz o nich wszystkich pamiętać i zadeklarować je jako globalne:
  1. <?php
  2. function someFunction()
  3. {
  4. global $var1, $var2, $var3, $varN;
  5. }
  6. ?>

Używając tablicy $GLOBALS nie musisz deklarować potrzebnych zmiennych jako globalne, bo jawnie korzystasz z nich jako globalnych ($GLOBALS['var1']). Skorzystanie z $GLOBALS wydaje mi się wpłynie też na czytelnośc kodu, bo ktoś (nawet ty sam po jakimś czasie) spoglądając na kod odrazu będzie wiedział skąd wzięły się dane zmienne.

pozdr.
Go to the top of the page
+Quote Post

Posty w temacie
- erix   [php] $GLOBALS['var'] a global $var - roznice   17.06.2006, 13:07:42
- - em1X   a global to nie jest po prostu umieszczenie zmienn...   17.06.2006, 13:20:54
- - erix   Chyba nie... Mam gdzies zmienna poza funkcja. I c...   17.06.2006, 13:28:27
- - siemakuba   zmienne które z natury mają zasięg globalny to tak...   18.06.2006, 12:19:23
- - erix   Cytatjedyna różnica jaką widzę to w...   18.06.2006, 12:31:00
|- - mike_mech   Cytat(erix @ 18.06.2006, 13:31 ) (...) w ...   18.06.2006, 12:33:40
- - erix   UZASADNIJ. Chodzi o to, ze mam zestaw klas i chce...   18.06.2006, 12:40:09
|- - mike_mech   Cytat(erix @ 18.06.2006, 13:40 ) Chodzi o...   18.06.2006, 12:46:38
- - erix   ale wciaz nie wiem dlaczego NIE STOSOWAC zmiennych...   18.06.2006, 13:01:14
- - siemakuba   Cytatle wciaz nie wiem dlaczego NIE STOSOWAC zmien...   18.06.2006, 13:18:05
- - em1X   Zmiennych globalnych nie powinno sie stosowac, pon...   18.06.2006, 13:28:58
- - erix   To juz chyba standard, zeby nie korzystac z regist...   18.06.2006, 13:32:19
- - em1X   bynajmniej nie mowimy tutaj o register_globals, al...   18.06.2006, 13:37:48
- - erix   em1X, nadmienilem do siemakuba to bylo tak OT...   18.06.2006, 13:40:22
- - em1X   jasna sprawa na przyszlosc pamietaj, ze wszelki...   18.06.2006, 13:43:01
|- - erix   Cytat(em1X @ 18.06.2006, 14:43 ) Singleto...   18.06.2006, 21:41:57
- - siemakuba   Cytat(erix @ 18.06.2006, 14:32 ) To juz c...   18.06.2006, 13:58:25
- - erix   O zesz! Chodzila mi po glowie referencja, ale ...   18.06.2006, 14:03:45
- - em1X   Moze inni wyciągną wnioski co jest lepsze i wygodn...   18.06.2006, 14:34:31


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: 14.06.2026 - 08:30