Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Stała, Flagi
Forum PHP.pl > Forum > Przedszkole
arrtxp
Witam, może ktoś mi wytłumaczyć kiedy np: używać stałych define() ?
Bo jak wyczytałem w sieci, to używamy stałych gdy nie chcemy by nasza zmienna nigdzie nie była podmieniona ?

I może ktoś by był miły i mi powiedział co to są flagi ?
Bo zawsze myślałem, że to define();

Dziękuje za opd.
Daimos
Flagi takie podstawowe w php (niech ktoś krzyknie jak się mylę) to nic innego jak odpowiednik jakiejś cyferki w formie stałej. Czyli jeśli weźmiemy pod lupę funkcję:
error_reporting
Parametry podaje się w postaci int`a, ale dla wygody stworzone zostały stałe, aby nie trzeba było pamiętać, który numer, co oznacza. I taką stałą nazywamy flagą.
Kiedy używać stałych? Przykładowo właśnie wtedy, kiedy musisz operować na cyferkach, dajmy na to od 0-10, a te cyferki odpowiadają konkretnym "słownym" wartościom.
Inny przykład, to takie podstawowe parametry dla całej aplikacji, Zend Framework już w pliku index.php definiuje stałą o nazwie APPLICATION_PATH - która odnosi się do folderu aplikacji. Niesamowicie przydatna stała, której każdy użył pewnie setki razy.
Ale w skrócie i na temat. Stałych trzeba unikać, ponieważ nie są potrzebne w każdym miejscu, a niepotrzebnie zawalają pamięć. Masz stałe w klasach, co już jest lepszym rozwiązaniem.

Wiele CMSów krąży w internecie (szczególnie starych), gdzie cała konfiguracja jest w stałych i np. taki dostęp do bazy ustalony przez "define" i co? Użyty jest raz, 50 linijek dalej. A dane te są dostępne dalej globalnie w każdym miejscu, co jest wielką pomyłką.
SpiritCode
Co do flag pojawiają się też w formie zmiennych. Określają wydarzenie z jednej pętli, które ma zmienić działanie w warunku dalej na przykład.

arrtxp
@up mogę prosić o przykład kodu ?
Pyton_000
  1.  
  2. $isGood = false;
  3.  
  4. while(doSth == 1)
  5. {
  6. if(sth == 2)
  7. $isGood = true;
  8. }
  9.  
  10. if($isGood) ...

$isGood jest flagą.
arrtxp
w takim razie czym się różni flaga od zmiennej ?
Pyton_000
Niczym w tym przypadku. To jest określenie potoczne dla stanu zmiennej która jest ustawiana true/false w zależności od warunków które muszą zajść.
strife
Tutaj masz definicję: http://en.wikipedia.org/wiki/Flag_field
A tutaj wyjaśnienie: http://stackoverflow.com/questions/5006039...-flag-variables
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.