Při práci s čísly se nám budou hodit matematické operátory. Základní matematické operátory jsou sčítání '+', odčítání '-', dělení ':' a násobení '*') - předpokládám, že je každý zná ze základní školy.
Mezi základní matematické operace patří již zmíněné sčítání, odčítání, násobení a dělení. V jazyce PHP to bude vypadat následovně.
<? // proměnné $a přiřadíme hodnotu 10 $a = 10; // proměnné $b přiřadíme hodnotu 5 $b = 5; /* Základní matematické operace. */ echo $a + $b; // sčítání echo "<br>"; // nový řádek echo $a - $b; // odečítání echo "<br>"; echo $a * $b; // násobení echo "<br>"; echo $a / $b; // dělení ?>
Toto jsou základní matematické operace, nyní si ukážeme další způsoby.
Často se nám může stát, že k nějaké proměnné budeme chtít přičíst hodnotu. Můžeme tak učinit pomocí následujícího kódu:
$a = $a + $b;
nebo můžeme použít "rychlejší" způsob zápisu:
$a += $b;
Oba tyto příklady mají shodnou funkci, liší se jen způsobem zápisu. Spojovat text a proměnné můžeme pomocí znaménka '.' (tečky). Většinu možností ukazuje tabulka.
Normální způsob | Zjednodušený způsob |
---|---|
$a = $a + $b; | $a += $b; |
$a = $a - $b; | $a += $b; |
$a = $a * $b; | $a *= $b; |
$a = $a / $b; | $a /= $b; |
$a = $a . $b; | $a .= $b; |
Při zvětšení hodnoty proměnné o jedničku můžeme také využít tvz. pre a post inkrementace či dekrementace:
$a = $a + 1;
nebo použijeme kratší verzi:
++$a;
Občas se můžete setkat také s následujícím způsobem:
$a++;
Rozdíl mezi těmito způsoby (++$a, $a++) je následující. V prvním případě využijeme tzv. preinkrementace - nejprve zvětšíme hodnotu proměnné $a o jedničku a poté vrátíme její hodnotu. V druhém případě využijeme tzv. postinkrementace, kdy se nejprve vrátí hodnota proměnné $a a poté se k ní přičte jednička. Stejné operace (++$a, $a++) můžeme provádět i s opačným znaménkem, což se nazývá dekrementace (--$a,$a--). Vše si ukážeme na příkladě:
<? // proměnné $a přiřadíme hodnotu 5 $a = 5; /* Preinkrementace - zvětší hodnotu proměnné $a o 1 a vrátí její hodnotu. */ echo ++$a; // vrátí hodnotu 6 echo "<br>"; // proměnné $a přiřadíme hodnotu 5 $a = 5; /* Postinkrementace - vrátí hodnotu proměnné $a a poté ji zvětší o 1 */ echo $a++; // vrátí hodnotu 5 echo "<br>"; echo $a; // vrátí hodnotu 6 ?>
Mezi další matematický operátor patří tzv. zbytek po dělení %. Pomocí tohoto operátoru můžeme určit zbytek po dělení dvou čísel. Vše si ukážeme na příkladě.
<? // proměnné $a přiřadíme hodnotu 7 $a = 7; // proměnné $b přiřadíme hodnotu 3 $b = 3; // nyní vypíšeme zbytek po dělení čísla 7 číslem 3 - výsledek bude 1 echo $a % $b; ?>
Logické operátory využijeme při rozhodování, zda se nachází v proměnné určitá hodnota nebo když se například hodnoty proměnných rovnají. Následující tabulka obsahuje seznam logických operátorů. Tyto operátory využijeme v řídících strukturách, o kterých si povíme v dalším odstavci.
Příklad | Název | Výsledek |
---|---|---|
$a and $b | And | Vrací hodnotu TRUE, když $a a $b (obě zároveň) mají hodnotu TRUE. |
$a or $b | Or | Vrací hodnotu TRUE, když $a nebo $b má hodnotu TRUE. |
$a xor $b | Xor | Vrací hodnotu TRUE, když $a nebo $b má hodnotu TRUE, ale ne obě současně. |
! $a | Not | Vrací hodnotu TRUE, když $a nemá hodnotu TRUE. |
$a && $b | And | Vrací hodnotu TRUE, když $a a $b (obě zároveň) mají hodnotu TRUE. |
* $a || $b | Or | Vrací hodnotu TRUE, když $a nebo $b má hodnotu TRUE. |
* Znak ' | ' můžeme napsat stisknutím pravého Altu a w (Alt + W). |
V následující tabulce je uvedena priorita operátorů.
Nižší priorita | Asociativita | Operátory |
---|---|---|
levá | , | |
levá | or | |
levá | xor | |
levá | and | |
pravá | ||
levá | = += -= *= /= .= %= &= |= ^= ~= <<= >>= | |
levá | ? : | |
levá | || | |
levá | && | |
Vyšší priorita | levá | | |
levá | ^ | |
levá | & | |
bez asociativity | == != === !== | |
bez asociativity | < <= > >= | |
levá | << >> | |
levá | + - . | |
levá | * / % | |
pravá | ! ~ ++ -- (int) (double) (string) (array) (object) @ | |
pravá | [ | |
bez asociativity | new |
Řídící struktury použijeme v případě, když budeme chtít například porovnat dvě proměnné - umožňují podmíněné provádění části kódu.
Mezi nejznámější operátory porovnávání patří tzv. Ternární operátor. Jeho syntaxe je velice jednoduchá.
< podmínka > ? < příkaz 1> : < příkaz 2>;
Pokud vrátí podmínka hodnotu TRUE (pravda), bude proveden příkaz 1 a v případě hodnoty FALSE (nepravda), bude proveden příkaz 2. Ukázku si předvedeme na příkladě:
<? // proměnné $a přiřadíme hodnotu 5 $a = 5; // podmínka zda má proměnná $a hodnotu 5 echo ($a == 5) ? "Proměnná má hodnotu 5" : "Proměnná nemá hodnotu 5"; ?>
Jedná se o základní typ "porovnávací konstrukce". Jeho syntaxe je následující:
if (< podmínka >) < příkaz >;
Případně při použití více příkazů můžeme použít složené závorky:
if (< podmínka >) { < příkaz >; < další příkaz >; }
Nyní si ukážeme ukázkový příklad, který porovná hodnotu proměnné $a a pokud tato hodnota bude 5, vypíše krátké hlášení.
<? $a = 5; if ($a == 5) echo "Proměnná \$a má hodnotu 5 !"; ?>
Případně můžeme použít následující verzi:
<? $a = 5; if ($a == 5) { echo "Proměnná \$a má hodnotu 5 !"; echo "<br>"; echo "Není to úžasné?"; } ?>
Když budeme chtít provést určitý příkaz i v případě, když nebude vyhovovat podmínka, použijeme příkaz else (opět můžeme zadávát do složených závorek). Vše si ukážeme na příkladě:
<? $a = 5; if ($a == 4) { echo "Proměnná \$a má hodnotu 5 !"; echo "<br>"; echo "Není to úžasné?"; } else { echo "Proměnná \$a nemá hodnotu 5"; } ?>
Tuto variantu větvení využijeme tehdy, pokud budeme chtít například kontrolovat určitou proměnnou na více hodnot. Syntaxe je podobná jako u If (do závorek doplníme podmínku):
<? $a = 5; if ($a == 4) { echo "Proměnná \$a nemá hodnotu 5"; echo "<br>"; echo "Proměnná \$a má následující hodnotu: $a"; } elseif ($a == 5) { echo "Proměnná \$a má hodnotu 5 !"; echo "<br>"; echo "Není to úžasné?"; } else { echo "Proměnná \$a nemá hodnotu 5"; } ?>
V řídících strukturách můžeme uchovávat také části HTML kódu - PHP kód uzavřeme do značek <? a ?>:
<? $a = 5; if ($a == 5) { ?> <table border="1"> <tr> <td>Testovací vypsání HTML kódu</td> </tr> </table> <? } ?>
Tato řídící struktura je velice podobná konstrukci If..Elseif...Else, můžete ji využít například tehdy, když budete chtít porovnat hodnotu nějaké proměnné. Základní syntaxe je následující
Switch (< proměnná >) { case "< první hodnota >": < příkazy k provedení > break; // ukončení první hodnoty case "< druhá hodnota >": < příkazy k provedení > break; // ukončení druhé hodnoty .... // možnost vložení dalších hodnot default: < příkazy k provedení, když se proměnná nebude rovnat žádné hodnotě > }
Proměnná je porovnávána na hodnoty a v případě, že žádná hodnota nebude shodná, vyhodnotí se příkazy za default:. Viz. příklad:
<? $a = 5; Switch ($a) { case 3: echo "Proměnná \$a má hodnotu 3."; break; case 4: echo "Proměnná \$a má hodnotu 4."; break; case 5: echo "Proměnná \$a má hodnotu 5."; break; default: echo "Proměnná \$a má neznámnou hodnotu !"; } ?>
Pomocí této konstrukce můžeme provádět i více možností (case) se společným příkazem.
<? $a = 5; Switch ($a) { case 3: case 4: case 5: echo "Proměnná \$a má hodnotu 3, 4 nebo 5."; break; default: echo "Proměnná \$a má neznámnou hodnotu !"; } ?>
Pro tento díl to bude vše. V příštím díle si povíme, co jsou to cykly.