Archív Inet.sk Pôvodný autor: Rasťo Turek
28. 04. 2005 o 00:00 9509x

Začiatky v php: Operátory diel druhý

Vítam Vás pri pokračovaní predošlého článku o operátoroch. Dnes sa pozrieme na pokračovanie rozobraného problému s operátorom pre spájanie reťazcov.
Začiatky v php: Operátory diel druhý
Ako sme si už minule povedali, tento operátor sa dá využiť pre spojenie akýchkoľvek reťazcov a najčastejším príkladom je spájanie príkazov pre SQL, ja to však spresním pre MySQL.

$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

Novinky a inšpirácie

Z nášho blogu

Prečítajte si novinky, inšpirácie a dôležité informácie zo sveta webhostingu a technológií.

Bezpečnostné aktualizácie PHP: Chráňte svoj web pred hrozbami Oznamy
21. 10. 2026

Bezpečnostné aktualizácie PHP: Chráňte svoj web pred hrozbami

Vývojársky tím PHP vydal dôležité bezpečnostné záplaty pre všetky oficiálne podporované verzie PHP 8. Na našich serveroch sme nezaváhali ...

Čítať viac
Gmail končí s funkciou „Odoslať ako“ pre cudzie e-mailové adresy. Čo to znamená pre vás? Oznamy
01. 10. 2026

Gmail končí s funkciou „Odoslať ako“ pre cudzie e-mailové adresy. Čo to znamená pre vás?

Google oznámil, že v januári 2027 zruší v Gmaile funkciu „Odoslať ako“ (Send as) pre e-mailové adresy od iných poskytovateľov. Ak ste si ...

Čítať viac
Večerná „prestávka“ pre server VIP033 Oznamy
25. 09. 2026

Večerná „prestávka“ pre server VIP033

Neustále pracujeme na tom, aby vaše weby bežali hladko, rýchlo a bezpečne. Technológie idú míľovými krokmi vpred a my v Inet.sk s nimi dr...

Čítať viac
Novinky na Inet.sk (09 / 2026) Novinky
09. 09. 2026

Novinky na Inet.sk (09 / 2026)

Posledné mesiace sme v Inet.sk nevenovali len stabilite serverov, ale najmä počúvaniu vašich reálnych skúseností z každodennej praxe. Výs...

Čítať viac

Podpora klientom

Máte ďalšie otázky?

Nezúfajte, pripravili sme pre Vás jednoduché odpovede na najdôležitejšie otázky, ktoré od našich klientov dostávame.

Zistiť viac

Naše výhody

Prečo si nás vybrať?

Našim klientom ponúkame až 30-dňovú záruku vrátenia peňazí.

Sme skutočný slovenský webhosting

Slovenská
firma

Nepatríme pod žiadnu nadnárodnú spoločnosť, sme malá rodinná firma.

Na nás sa môžete kedykoľvek spoľahnúť

Dlhoročné
skúsenosti

Na slovenskom trhu pôsobíme už viac ako 20 rokov, sme overená značka.

Naši prví zákazníci sú stále s nami

Spokojní
zákazníci

Naši zákazníci sú ako naša rodina, preto nám verí už viac ako 1250 klientov.

Maximálna bezpečnosť

Maximálna
bezpečnosť

Chránime Vás pred útokmi i SPAMom. U nás sú Vaše dáta v bezpečí.

Prozákaznícka podpora

Ochotná
podpora

Zakladáme si na individuálnom prístupe, preto Vám vždy radi pomôžeme.

Kvalita a dobrá cena

Férová
cena

Cena pri obnove je rovnaká ako pri objednávke. Nezdražujeme po prvom roku a bez skrytých poplatkov.

U nás sa Vám nič nestratí

Pravidelné
zálohovanie

Vaše dáta zálohujeme každý deň, dostupné sú aj zálohy z pred niekoľkých mesiacov.

Svižný Admin Panel nájdete len u nás

Prehľadný
Admin Panel

Máme rýchly a prehľadný Admin Panel, ktorý zvládne používať naozaj každý.

Správa používateľov

Správa
používateľov

Spravujte svoje projekty bez akýchkoľvek obáv s kolegami alebo externými partnermi.

Máme zľavy pre verných klientov

Vernostné
zľavy

Verní klienti u nás automaticky získavajú 15 % zľavu na každú ďalšiu objednávku.

My Vás nebudeme obmedzovať

Bez
obmedzení

Neobmedzujeme počet databáz, e-mailov, ftp a ani prenos dát.

Hosting pre WordPress

WordPress
na 1 klik

Nainštalujte si obľúbené redakčné systémy rýchlo a jednoducho.

Referencie

Spokojní zákazníci

Pozrite sa, čo o nás povedali naši klienti. Neváhajte a pridajte sa k nám ešte dnes.

Auto 100
Bystricoviny
eCall Slovakia
Filip Jančík
Frost
Merkury Broker
Mi:Su Design
Mesto Nitra
Pro Clienta
Schneider Lekáreň
Vego Marketing
Mesto Zlaté Moravce

Všetky ceny sú uvádzané bez DPH
© 2006 - 2026, Inet.sk, s. r. o., Všetky práva vyhradené

Na našej stránke používame "cookies". Vďaka nim sledujeme návštevnosť, prispôsobujeme reklamu a používateľské nastavenia, čo zlepšuje Váš zážitok z našej stránky. Súhlasíte s ich spracovaním?
Vlastné nastavenia cookies