| $sql_select = "SELECT id, dat, user, name, sex ". |
| "FROM zakaznici ". |
| "ORDER BY id DESC ". |
| "LIMIT 0 , 55" |
Toto je snáď jedna s najlepších ukážok využitia tohto zápisu. Určite v ňom nájdete veľkú záľubu ako množstvo iných programátorov, stačí len trocha praxe a už bez neho ani nedokážete žiť. Práve ma napadla ďalšia výhoda. Ak ste už v minulosti použili pre získanie premennej zápis $_POST['premenna'] a následne ste ju vypisovali bez použitia operátora pre spájanie reťazca tak ste si určite museli definovať túto premennú do inej, ktorá sa dala neskôr použiť:
| $user = $_POST['user']; |
| echo "Welcome here, $user"; |
Ak ste postupovali takto ako ja teraz, určite ste si spravili zbytočnú prácu. Ďalej ma tento zápis, že premennú $user máte už obsadenú a tak ju môžete použiť už len s touto hodnotou, alebo je hodnotu meniť počas behu skriptu z čoho môže vzniknúť neskutočný chaos. Pozrite sa aké je to jednoduché s použitím operátora pre spájanie reťazcov:
| echo "Welcome here, ".$_POST['user']; |
Skutočné jednoduchý zápis a pritom nemáte obsadenú žiadnu premennú a nemusíte ani zbytočne definovať ďalšie a ďalšie premenné pri rozsiahlejšom použití. Určite ak si budete tvoriť vlastné stránky, kde budete chcieť zapojiť aj návštevníkov do jej tvorenia, sa stretnete z množstvom podobných situácii.
Skrátené priraďovanie Podobne ako je to v iných programovacích jazykoch je možné aj v PHP používať skrátený zápis pre príkazy priradenia. Prvý operand je premenná a výsledok je uložený do rovnakej premennej. Tu je zoznam skrátených príkazov:
| Príklad | Ekvivalent |
| $e += $f | $e = $e + $f |
| $e -= $f | $e = $e - $f |
| $e *= $f | $e = $e * $f |
| $e /= $f | $e = $e / $f |
| $e %= $f | $e = $e % $f |
| $e &= $f | $e = $e & $f |
| $e |= $f | $e = $e | $f |
| $e ?= $f | $e = $e ? $f |
| $e .= $f | $e = $e . $f |
| $e >>= $f | $e = $e >> $f |
| $e <<= $f | $e = $e << $f |
| $e++ | $e = $e + 1 // tento skrátený zápis je asi najpoužívanejší v php |
| $e- | $e = $e - 1 |
Operátor inkrementácie a dekrementácie sa prevádza podľa toho, či je určený pred premennou alebo až po nej. Ak je pred ňou tak sa najskôr prevedie inkrementácia a potom sa prevedie priradenie alebo je po premennej a teda najskôr sa prevedie priradenie a až potom sa prevedie inkrementácia. Napríklad:
| $e = 10; // $e je 10 |
| $e++; // $e je 11 |
| $e = 10; // $e je 10 |
| ++$e; // $e je 11 |
Ale
| $e = 10; // $e je 10 |
| $f = $e++; // $e je 11 ale $f je 10! |
| // priradenie sa previedlo pred inkrementáciou |
| $e = 10; // $e je 10 |
| $f = ++$e; // $e je 11 aj $f je 11 |
| // priradenie sa previedlo po inkrementácii |
Dúfam že je to jasné, tento postup sa používa veľmi často pri cykloch typu FOR.
Zmiešané operátory
V tejto časti sa pozrieme na operátory, ktoré nepatria ani do jednej z uvedených skupín. Tieto operátory na rozdiel od tých, o ktorých sme si doteraz hovorili tieto operátory neprevádzajú žiadne matematické operácie.
Operátory premenných
Operátor premennej musí vždy začínať znakom $ a pokračovať akýmkoľvek slovom začínajúce písmenom alebo číslom. Každá premenná v PHP musí začínať týmto znakom. Ďalšie operátory premenných sa používajú pri predávaní argumentov funkciám o ktorých si povieme neskôr.
Operátory objektov
Operátor new sa používa pre vytvorenie inštancií triedy. Operátor (->) sa používa pre prístup k vlastnostiam inštancií triedy.
Operátory pre potlačenie chybových hlášok
Pre potlačenie chybovej hlášky sa používa operátor (@). Pričasto funkcie "vypľúvajú" chybové hlášky, ktoré v podstate pre nás nie sú dôležité a preto pred každú takúto funkciu použijeme tento operátor.
Napríklad keď delíte nulou, funkcia automaticky vyvolá chybu ale pritom je pre nás podstatné, že výsledok napríklad v podmienke bude FALSE a teda nechcem aby funkcia vypísala chybu:
| echo (9/0); |
Aby sme zabránili chybe, dáme pred funkciu operátor (@).
| @echo (9/0); |
| echo @(9/0); |
Určite ste si všimli že je možné dať tento operátor nielen pred funkciu ale aj pred akýkoľvek výraz, výsledok je úplne rovnaký.
Priorita a asociativita operácií
Priorita určuje poradie, v ktorom budú odlišné operácie prevedené. Rovnako ako v matematike existuje určitá postupnosť, ktorou sa riadi aj PHP. Napríklad ak máte zápis 9 - 4 * 2, tak by ste povedali že výsledok je 10 (9 - 4 = 5 * 2 = 10). Avšak pravdou je že výsledok je 1 (4 * 2 = 8, 9 - 8 = 1; lepšie pochopiteľné ako 9 - (4 * 2)). Na tomto príklade je vidieť, aké dôležité je dávať si pozor na postupnosť. Použitie zátvoriek Vás môže zachrániť pred bolesťami hlavy z nejednoznačne vyplývajúcich priorít.
Asociativita určuje poradie v akom budú prevádzané operácie rovnakej priority ako napríklad dve delenia. Delenie má prioritu ako v matematike zľava doprava tzv. ľavá asociativita. Teda napríklad 8 / 4 / 2 je ekvivalent (8 / 4) / 2 = 1 a nie ako by si mohol niekto myslieť 8 / (4 / 2). Pre opačnú asociativitu teda z prava doľava napíšeme:
| $e = 8; |
| $f = 4; |
| $g = 2; |
| $e /= $f /= $g; |
| echo $e; |
je ekvivalentom zápisu:
| $e = 8; |
| $f = 4; |
| $g = 2; |
| $f = $f / $g; |
| $e = $e / $f; |
| echo $e; |
Výsledkom bude 4 miesto 1. Ak si dobre prezriete zápis tak uvidíte, že je to skrátený zápis ktorý sme si vysvetlili vyššie. Tu je tabuľka obsahujúca operátory s ich acociativitou.
| Operátor | Operácia | Asociativita |
| ( ) | uzavretie do zátvoriek | nie je |
| new | inštancia objektu | nie je |
| [ ] | prístup k indexu poľa | pravá |
| ! | logická negácia | pravá |
| ~ | bitová negácia | pravá |
| ++, - | inkrementácia, dekrementácia | pravá |
| @ | potlačenie chybových hlášok | pravá |
| *, /, % | násobenie, delenie, zostatok | ľavá |
| +, -, . | sčítanie, odčítanie, spájanie reťazcov | ľavá |
| <<, >> | posun bitov vľavo a vpravo | ľavá |
| <, <=, >, >= | menšie, väčšie alebo menšie alebo väčšie | nie je |
| ==, != | rovnosť, nerovnosť | nie je |
| & | bitový súčin and | ľavá |
| ? | bitový exkluzívny súčin xor | ľavá |
| | | bitový súčet or | ľavá |
| && | logický súčin and | ľavá |
| || | logický súčet or | ľavá |
| ?, : | podmienený výraz - kondicionál | pravá |
| =, +=, -=, *=, /=, .= | priradenie | pravá |
| %=, &=, !=, ~=, <<=, >>= | ||
| and | logický súčin | ľavá |
| xor | logický exkluzívny súčet | ľavá |
| or | logický súčet | ľavá |
| , | výpočet viacerých hodnôt | ľavá |
Vynechal som zámerne niekoľko častí pri tejto téme, keďže nie sú moc používané a hlavne sa snažím tento seriál robiť pre začiatočníkov. Ak máte záujem o bližšie informácie o operáciách prezrite si dokumentáciu k php.
Týmto by som ukončil veľmi dôležitú časť php a druhé pokračovanie nášho seriálu. Pevne verím, že sa čoskoro dostanem k napísaniu ďalšieho. Najbližší by mal pojednávať o príkazoch ako IF, WHILE, FOR a podobne. Ak máte akékoľvek otázky píšte na email turek@inet.sk.
Ďalej by som Vás chcel poprosiť, aby ste mi zasielali Vaše otázky a nápady na nové články, poprípade zanechávali pripomienky v diskusii na novo vytvorenom fóre http://forum.helfnimi.com.
Do programovania priatelia. :o)
Rastislav Turek // http://forum.helfnimi.com