PHP lekcije - lekcija 5 - Logičke promenljive u PHP-u
Dakle, sada znamo da u PHP-u postoje brojevi i stringovi. Ali to nije sve, u ovoj lekciji ćemo pogledati još jedan tip promenljivih, tačnije logičke promenljive. Zovu se logičke zato što se koriste za izgradnju logike koda. Recimo da postoji situacija u kojoj treba da se različite radnje izvrše pod različitim uslovima. Imate čašu vode iz koje želite da pijete, ali ako je vode malo, nećete se napiti, a ako je previše, kada nagnate čašu voda će vam se prosuti. Zato treba dodati ili oduzeti vodu u zavisnosti od količine u čaši.
To možemo prikazati ovako:
$kolicina_vode_u_casi = 100;
$malo_vode = TRUE;
AKO $malo_vode
ONDA $kolicina_vode_u_casi = $kolicina_vode_u_casi + 20;
U ovom slučaju promenljiva $malo_vode je logička promenljiva koja može imati vrednost TRUE (tačno) ili FALSE (netačno). Ni više ni manje. Takođe, kod iznad nije PHP, ako ga ubacite u PHP fajl Apache će javiti grešku, pa zato u PHP-u to izgleda ovako:
$water = 100; $not_enough_water = TRUE; if($not_enough_water){ $water = $water + 20; }
O if uslovnom operatoru ćemo kasnije, a sada o TRUE i FALSE. Obično se pored TRUE i FALSE koriste i 1 i 0. Zašto onda koristiti posebne TRUE i FALSE i komplikovati stvari? Sećate se da sam rekao da promenljiva sa celim brojem zauzima duplo manje memorije nego promenljiva sa decimalnim brojem. Tako je i sa logičkim promenljivim (TRUE ili FALSE) – one zauzimaju četiri puta manje memorije nego cele promenljive i osam puta manje nego decimalne. Zato je bolje koristiti TRUE ili FALSE gde god je moguće.
Verovatno pitate: "Zašto mi treba ta sitnica u bitovima memorije? Imam 8 GB RAM-a na serveru." Sad zamislite da imate sajt sa 1000 celobrojnih promenljivih koje mogu da budu zamenjene logičkim. Tada se samo za te promenljive troši 4 MB memorije, a sa logičkim promenljivima samo 1 MB. A sad zamislite da 100 korisnika istovremeno pristupa sajtu. To je 400 MB za cele promenljive, a samo 100 MB sa logičkim. Razlika od 300 MB. Naravno, primer je uprošćen, ali princip je jasan.
Još nešto o tome kako se logičke promenljive konvertuju u celobrojne:
<?php $var1 = TRUE; $var2 = TRUE + 1; echo $var2; ?>Rezultat će biti 2, dakle PHP sam sabira logičku vrednost i broj, pa se ne treba plašiti problema sa tipovima.