PHP lekcije - lekcija 6 - PHP operatori
Već smo se upoznali sa string i numeričkim promenljivama, naučili da numeričke promenljive mogu biti različitih tipova: celobrojne, decimalne, logičke. Sada je vreme da naučimo kako da radimo sa tim promenljivama, kako da ih menjamo i dodajemo nešto.
U tabelama ispod prikazana je upotreba različitih PHP operatora.
Aritmetički operatori PHP
PHP operator | Opis | Primer | Rezultat |
---|---|---|---|
+ | Sabiranje | x=2 x+2 |
4 |
- | Oduzimanje | x=2 5-x |
3 |
* | Množenje | x=4 x*5 |
20 |
/ | Deljenje | 15/5 5/2 |
3 2.5 |
% | Ostatak pri deljenju | 5%2 10%8 10%2 |
1 2 0 |
++ | Inkrement (povećanje za 1) | x=5 x++ |
x=6 |
-- | Dekrement (smanjenje za 1) | x=5 x-- |
x=4 |
Sabiranje u PHP
Hajde da pogledamo primere aritmetičkih operatora.
<?php $x = 1; $y = 2; $z = $x + $y; print $z; ?>
Rezultat primera iznad biće 3. Mislim da nema potrebe za dodatnim objašnjenjima.
Oduzimanje u PHP
<?php $x = 2; $y = 6; $z = $y - $x; print $z; ?>
Rezultat koda biće 4. Takođe, oduzimanje je jasno.
Množenje u PHP
<?php $x = 3; $y = 4; $z = $x * $y; print $z; ?>
Rezultat će biti 12. Verujem da primećujete da brojevi rastu i stvari postaju složenije.
Deljenje u PHP
<?php $x = 26; $y = 2; $z = $x / $y; print $z; ?>
Rezultat je 13. Sve izgleda jednostavno i jasno. Sada prelazimo na ono što ne koristimo svaki dan.
Ostatak pri deljenju (modulo) u PHP
$x = 10; $y = $x % 3; print $y;
Rezultat će biti 1. Šta to znači? Sećate li se deljenja „na prste“, izdvajanja celih delova i ostatka? Taj „ostatak“ manji od delitelja je rezultat operatora % (modulo). Hajde da vidimo gde se ovo može koristiti u realnim proračunima.
<?php $time = time(); // trenutno vreme od Unix epohe $hours = $time % 86400; // izdvajamo trenutno vreme u sekundama u danu $hours = floor($hours / 3600); // uzimamo celobrojni broj sati $minutes = $time % 3600; // izdvajamo minute u sekundama $minutes = floor($minutes / 60); // uzimamo samo cele minute $seconds = $time % 60; // broj sekundi print $hours . ':' . $minutes . ':' . $seconds; // ispis rezultata ?>
Ovaj primer možda nije često upotrebljiv, ali na ovaj način možemo prikazati vreme na serveru. Funkcija floor() vraća celobrojni deo broja, npr. za 3.7 vraća 3, odnosno bez zaokruživanja naviše.
Šta je Unix vreme ili Unix epoha?
Unix vreme ili POSIX vreme je način kodiranja vremena koji koriste UNIX i POSIX-kompatibilni sistemi.
Početak brojenja je ponoć (UTC) sa 31. decembra 1969. na 1. januar 1970, to vreme se naziva "Unix epoha".
Unix vreme se slaže sa UTC, uključujući i visoke sekunde.
Čuvanje vremena kao broja sekundi je zgodno za poređenje datuma, kao i za skladištenje datuma u malom prostoru (4 ili 8 bajtova). Nedostaci su kod čestih operacija nad delovima datuma, ali u većini slučajeva je efikasnije skladištiti vreme kao jednu vrednost.
Inkrement (povećanje za 1) u PHP
Sve je prilično jednostavno:
<?php $x = 1; $y = 1; $x++; $y = $y + 1; print 'x=' . $x . '<br />'; print 'y=' . $y; ?>
Rezultati za x i y će biti isti - 2. Sintaksa je preuzeta iz C++.
Dekrement (smanjenje za 1) u PHP
<?php $x = 4; $y = 4; $x--; $y = $y - 1; print 'x=' . $x . '<br />'; print 'y=' . $y; ?>
Opet vrlo jednostavno, dva minus znaka ispred promenljive oduzimaju jedan.
Operacije dodele u PHP
PHP operator | Primer | Ekvivalent |
---|---|---|
= | x=y | x=y |
+= | x+=y | x=x+y |
-= | x-=y | x=x-y |
*= | x*=y | x=x*y |
/= | x/=y | x=x/y |
.= | x.=y | x=x.y |
%= | x%=y | x=x%y |
Ovo je alternativni način zapisivanja aritmetičkih operacija. Neću davati primere, mislim da i sami možete razumeti njihovu upotrebu.
Operatori poređenja u PHP
PHP operator | Opis | Primer |
---|---|---|
== | Jednako | 5==8 vraća false |
!= | Nije jednako | 5!=8 vraća true |
<> | Nije jednako | 5<>8 vraća true |
> | Veće od | 5>8 vraća false |
< | Manje od | 5<8 vraća true |
>= | Veće ili jednako | 5>=8 vraća false |
<= | Manje ili jednako | 5<=8 vraća true |
Operatori poređenja će biti detaljnije objašnjeni kada budemo učili o uslovnim i petljama.
Logički operatori u PHP
PHP operator | Opis | Primer |
---|---|---|
&& | I | x=6 y=3 (x < 10 && y > 1) vraća true |
|| | ILI | x=6 y=3 (x==5 || y==5) vraća false |
! | NE | x=6 y=3 !(x==y) vraća true |