Add to Google Reader or Homepage Prihlásiť sa k odberu RSS

IV. Základy: Výrazy, operátory a reťazce

Výrazom v PHP môžme nazvať hocičo čo má nejakú hodnotu. Napríklad aj také premenné, alebo konštanty sú výrazy.

Operátory sú znaky pomocou, ktorých vykonávame potrebné úkony medzi výrazmi. Majú určitú prioritu – tabuľka priorít je uvedená nižšie. Takisto ako v iných programovacích jazykoch je možné operátory vyjadrovať skráteným zápisom.

PHP pozná základné 2 typy operátorov :

unárne (+, -) binárne (+, -, *, / )

PHP pozná ešte špeciálne typy unárnych operátorov :

inkrement (prefix ++) – ++výraz – výraz sa najprv zväčší o jednotku a až potom je jeho nová hodnota vrátená ako hodnota výrazu dekrement (suffix –) – výraz++ – najprv je vrátená pôvodná hodnota výrazu a až potom je zväčšený o jednotku

Niekedy je potrebný výraz, ktorého výsledkom je buď pravda (true), alebo nepravda (false). PHP na tento výraz nemá špeciálny typ, ale použije sa klasický integer. Kde nulová hodnota znamená false a nenulová true.

<?
 
$a = 10;
++$a; //nacita jednotku a vrati novu hodnotu = 11
$b = ++$a; // takisto nacita jednotku a vrati novu hodnotu = 12
echo $b; // vypise 12
 
$a = 10;
++$a; // hodnota = 11
$b = $a++; // vrati podvodnu hodnotu = 11 a potom pripocita jednotku
echo $b; //vypise 11
 
?>

Tabuľka operátorov PHP

Operátor Popis
== rovná sa
!= nerovná sa
&& logický súčin „AND“
|| logický súčet „OR“
| zápor, negácia
< menej ako
> viac ako
<= menší, alebo rovná sa
>= väčší, alebo rovná sa

Nemýľte si == a =. Ak = znamená priradenie hodnoty premennej ($a = 5; // hodnota premennej sa zmenila na 5) tak == je porovnávací operátor, znamená rovná sa a hodnotu premennej nemení! ($a ==5; // rovná sa $a piatim? ; výsledok áno / nie, hodnota premennej sa nemení)

Tabuľka skrátených zápisov

Zápis Skrátený zápis
a = b + c nie je
a = a + c a += c
a = a – c a -= c
a = a * c a *= c
a = a / c a /= c
a = a % c a %= c

PRIORITA VYHODNOCOVANIA OPERÁTOROV

Priorita Operátor Asociativita
1 () [index poľa] -> --------------->
2 ! – ++ (typ) @ <---------------
3 * / % --------------->
4 + – . --------------->
5 <<>> --------------->
6 < <= > >= --------------->
7 != == <> --------------->
8 & --------------->
9 ˆ --------------->
10 | --------------->
11 && --------------->
12 || --------------->
13 ?: <---------------
14 = += -= *= /= %= >>= <<= &= |= ˆ= <---------------

Výraz: if ($b !=0 && $a * $b < $x), znamená asi toľko (časť v zátvorkách): $b sa nerovná nule (pre prípad násobenia nulou) a $a * $b je menšie ako $x. K násobeniu nulou nedôjde, pretože $b !=0 ukončí výraz. Prečo $b !=0 ukončí výraz? Môže za to vlastnosť nazvaná short circuit (skrátene vyhodnocovanie výrazov). Hneď ako je možné vo výraze určiť konečný výsledok, vyhodnocovanie skončí.

Z tabuľky je jasné, ktorý operátor má akú prioritu. Ak sa stretnú dva operátory tej istej priority vyhodnocujú sa postupne zľava doprava. Inak implicitný smer je presne opačný zprava doľava. Vysvetlíme si to na výraze :

<?
if ($plat >=10000 && $plat <= 20000)
?>

Ideme zprava doľava (implicitný smer) a nájdeme výraz s najvyššou prioritou. Podľa asociativity postupujeme zľava doprava a nájdeme dva operátory rovnakej priority. Takže prvé je $plat je väčší, alebo rovná sa 10000, ďalej $plat je menší, alebo rovná sa 20000 a nakoniec logický súčin &&.

REŤAZCE Čo je reťazec?

Je to súbor znakov, či už písmen, číslic, alebo špeciálnych znakov. Zjednodušene by sa dalo povedať, že je to hodnota premennej typu string. Posledný operátor s ktorým Vás oboznámim je „.“ (bodka). Slúži na spájanie reťazcov. Použitie napovie jednoduchý príklad:

<?
 
$text_1 = "Hello";
echo $text_1."World !"; //vypíše Hello World!
 
//teraz skrátený zápis
$text_1 .= "World !";
echo $text_1; //vypíše takisto Hello World!
 
?>

PHP FUNKCIE PRE PRÁCU S REŤAZCAMI

Funkcia strlen()

Funkcia strlen() nám vracia počet znakov (vrátane medzier) v reťazci. Jej jediným parametrom je daný reťazec.

echo strlen("počet znakov!");
//vráti hodnotu 13.

Funkcia strpos()

Funkcia strpos() nám vráti prvú pozíciu hľadaného výrazu v reťazci. Má dve parametre – reťazec v ktorom vyhľadávame pozíciu a reťazec, ktorého pozíciu hľadáme. Viac už objasní príklad :

echo strpos("počet znakov!","znakov");
// vráti hodnotu 6.

Číslo 6 je prvá pozícia hľadaného reťazca, tj. písmeno „z“. Dôvod prečo nám funkcia nevracia hodnotu „7“, keďže písmeno „z“ je siedmym znakom je ten, že prvá pozícia – písmeno „p“ má hodnotu „0“.

Funkcia explode()

Touto funkciou zabezpečíme transformáciu reťazca na pole. Má tri parametre: explode(„deliaci znak“,„reťazec“,„li­mit“).

„deliaci znak“ (povinný parameter) je znak, ktorý sa použije na selekciu reťazca a tento sa neskôr využije na vytváranie poľa. Viac objasní príklad.
„reťazec“ (povinný parameter) je reťazec, ktorý má byť transformovaný na pole
„limit“ (voliteľný paramter) určuje maximálny počet prvkov poľa

<?
$retazec = "Prvý prvok poľa/Druhý prvok poľa/Tretí prvok poľa";
$pole = explode("/",$retazec);
 
//Výsledok je nasledovný
$pole[0] = Prvý prvok poľa
$pole[1] = Druhý prvok poľa
$pole[3] = Tretí prvok poľa
?>

Ako deliaci znak sme použili „/“, preto sa po každej lomke vytvorí nový prvok poľa. Deliacim znakom môže byť čokoľvek, vrátane celej skupiny znakov.

Funkcia implode()

Táto funkcia je presným opakom explode();, čiže nám pole transformuje na reťazec. Má dve parametre: explode(„oddeľo­vač“,„pole“). „oddeľovač“ (voliteľný parameter) Je znak (môže byť aj medzera, ktorá je defaultne nastavená), ktorý sa pridá do reťazca medzi jednotlivé prvky poľa.
„pole“ (povinný parameter) Je pole, ktoré chceme transformovať na reťazec.

//Vezmime si pole použité v predošlom príklade :
$pole = array("Prvý prvok poľa","Druhý prvok poľa","Tretí prvok poľa");
$retazec = implode("/",$pole);
echo $retazec;
 
//Vypíše "Prvý prvok poľa/Druhý prvok poľa/Tretí prvok poľa".

Funkcií na prácu s reťazcami je podstatne väčšie množstvo, o nich však v samostatných článkoch pre pokročilejších kodérov.

Matej Lacko

Naspäť naspäť Pridať komentár k článku prispieť do diskusie [0]
RSS