Kurz PHP (3.)

Prßce s Φφsly a textem

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.


Zßkladnφ matematickΘ operace

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.


PokroΦilejÜφ matematickΘ a textovΘ operace

╚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

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).


Priorita operßtor∙

V nßsledujφcφ tabulce je uvedena priorita operßtor∙.

Ni₧Üφ priorita Asociativita Operßtory
levß ,
levß or
levß xor
levß and
pravß print
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

╪φ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.


Ternßrnφ operßtor

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";
?>


If

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Θ?";
}

?>


Else

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";
}

?>


Elseif

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>
	<?
}

?>


Switch

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.

Petr Rympler