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.