Ìíå êàæåòñÿ íå ñòîèò ïîïóñòó ëèòü âîäó è îïèñûâàòü òóò è òàê âñåì
èçâåñòíûå èç äðóãèõ ÿçûêîâ ïðîãðàìèðîâàíèÿ ñòðóêòóðû óïðàâëåíèÿ.
Âìåñòî ýòîãî ÿ ïðèâåäó èõ ïîëíûé ñïèñîê è âñå ìåòîäû èõ
èñïîëüçîâàíèÿ.
IF
Ñòðóêòóðà:
if (âûðàæåíèå)
áëîê_âûïîëíåíèÿ
Ïðèìåð èñïîëüçîâàíèÿ:
if ($a >
$b)
print "a áîëüøå, ÷åì b";
if ($a >
$b) {
print "a áîëüøå, ÷åì
b";
$b = $a;
}
ELSE
Ïðèìåð èñïîëüçîâàíèÿ:
if ($a > $b)
{
print "a áîëüøå, ÷åì b";
} else
{
print "a íå áîëüøå, ÷åì
b";
}
elseif
Èíòåðåñíûé îïåðàòîð. Îí ïðèìåíÿåòñÿ â ñëó÷àå, êîãäà âàì
íåîáõîäèìî èñïîëüçîâàòü IF ñðàçó ïîñëå ELSE
Ïðèìåð èñïîëüçîâàíèÿ:
if ($a > $b)
{
print "a is bigger than b";
} elseif
($a == $b) {
print "a is equal to
b";
} else {
print "a is smaller than
b";
}
if(): ... endif;
Òîæå äîâîëüíî íåîáû÷íàÿ ñòðóêòóðà. Ñìûñë åå â òîì, ÷òî åñëè
óñëîâèå, çàïèñàííîå â êðóãëûõ ñêîáàõ îïåðàòîðà IF îêàçàëîñü
èñòèííîé, òî áóäåò âûïîëíÿòüñÿ âåñü êîä, íà÷èíàÿ îò äâîåòî÷èÿ
':' òî êîìàíäà ENDIF;
Ïðèìåð èñïîëüçîâàíèÿ:
<?php if ($a==5): ?>
A = 5
<?php endif; ?>
Èëè âîò åùå ñ èñïîëüçîâàíèåì âûøåîïèñàííîãî îïåðàòîðà
ELSEIF
if ($a == 5):
print "a equals 5";
print "...";
elseif ($a == 6):
print "a equals 6";
print "!!!";
else:
print "a is neither 5 nor 6";
endif;
WHILE
Ñòðóêòóðà:
while (âûðàæåíèå): áëîê_âûïîëíåíèÿ ... endwhile;
È ïðèìåð÷èê:
$i = 1;
while ($i <= 10) {
print $i++;
}do.. while
Âîîáùåì-òîíè÷åãî íåîáû÷íîãî - öèêë, êàê öèêë. Âûïîëíÿåòñÿ
áëîê âûïîëíåíèÿ äî òåõ ïîð, ïîêà ñïðàâåäëèâî
âûðàæåíèå. Ñòðóêòóðà:
do áëîê_âûïîëíåíèÿ while
(âûðàæåíèå);
FOR
Òî÷íî òàêîé-æå öèêë êàê è â C++. Ñòðóêòóðà:
for (âûðàæåíèå1; âûðàæåíèå2; âûðàæåíèå3)
áëîê_âûïîëíåíèÿ
Õîòÿ - íåò. Åñòü â PHP åùå îäíî äîïîëíåíèå. Ñòðóêòóðà:
for (âûðàæåíèå1; âûðàæåíèå2; âûðàæåíèå3):
áëîê_âûïîëíåíèÿ; ...; endfor;
Îáðàòèòå âíèìàíèå, íà äâîåòî÷èå ïåðåä áëîêîì âûïîëíåíèÿ.
break
Ñòàðî êàê ìèð. Ýòîò îïåðàòîð ïîçâîëÿåò âûñêàêèâàòü èç ëþáîãî
öèêëà (for, while, do.. while) äî îêîí÷àíèÿ åãî
âûïîëíåíèÿ. Ïðèìåð:
$i = 0;
while ($i < 10) {
if ($arr[$i] == "stop") {
break;
}
$i++;
}continue
Òîæå íè÷åãî íîâîãî. Ýòîò îïåðàòîð ïîçâîëÿåò ïðîïóñòèòü äàëüíåéøåå
äåéñòâèÿ áëîêà_âûïîëíåíèÿ ëþáîãî öèêëà è ïðîäîëæèòü
âûïîëíåíèå ñ íîâîãî êðóãà. Ïðèìåð:
while (âûðàæåíèå) {
if (âûðàæåíèå2)
continue;
äåéñòâèå;
};
Òàêàÿ ïðîãðàìà àíàëîãè÷íà ñëåäóþùåé, áåç èñïîëüçîâàíèÿ
continue:
while (âûðàæåíèå) {
if (!âûðàæåíèå2)
äåéñòâèå;
};switch
×àñòî î÷åíü íåîáõîäèìûé îïåðàòîð âûáîðà. Õîòÿ âñå åãî è òàê
çíàþò, ïîïðîáóþ ïðåäñòàâèòü ÿñíûé ïðèìåð. Äîïóñòèì ó âàñ åñòü
ñëåäóþùèé ó÷àñòîê â ïðîãðàììå:
if ($i == 0) {
print "i ðàâíî 0";
} else
if ($i == 1) {
print "i ðàâíî 1";
} else
if ($i == 2) {
print "i ðàâíî 2";
} else
print " íèîäíî óñëîâèå íå ïðîøëî"
Ñýêîíîìèòü âðåìÿ âûïîëíåíèÿ äàííîãî ó÷àñòêà, à òàê-æå ïðåäñòàâèòü
åãî áîëåå ëîãè÷íûì ñïîñîáîì è ïîìîæåò íàì ýòîò îïåðàòîð. Ñëåäóþùèé
ïðèìåð ñîâåðøàåò äåéñòâèÿ, àíàëîãè÷íûå ïðåäûäóùåìó, íî â áîëåå
êðàñèâîé ôîðìå:
switch ($i) {
case 0:
print "i ðàâíî 0";
break;
case 1:
print "i ðàâíî 1";
break;
case 2:
print "i ðàâíî 2";
break;
default:
print " íèîäíî óñëîâèå íå ïðîøëî"
}
â òàêîì ïðåäñòàâëåíèè åñòü è åùå îäíî ïðåèìóùåñòâî. Åñëè âû íå
ïîñòàâèòå îïåðàòîð break íàïðèìåð ïåðåä case 1:, òî â
ñëó÷àå, êîãäà $1 áóäåò ðàâåí íóëþ ïîñëå âûâîäà íà ýêðàí
ñîîáùåíèÿ îá ýòîì ïðîãðàììà ïîéäåò äàëüøå è âûâåäåò òàêæå ñîîáùåíèå
î òîâ, ÷òî $I ðàâíà åùå è 1 è òîëüêî ïîñëå, âñòðåòèâ
break; ïðîäîëæèò ñâîå âûïîëíåíèå çà ïðåäåëàìè
switch
require
Ýòîò îïåðàòîð äåéñòâóåò ïðèìåðíî òàê-æå êàê è #include â
C++. Ôàéë, óêàçàííûé â êàâû÷êàõ âêëþ÷àåòñÿ â ñêðèïò è âûïîëíÿåòñÿ,
íî òîëüêî îäíàæäû.  ôàéëå, âêëþ÷àåìîì îïåðàòîðîì require
ðåçîííî õðàíèòü êàêèå-òî äàíûå, íåîáõîäèìûå äëÿ ìíîãèõ ñêðèïòîâ è
ñîîòâåòñâåííî âëêþ÷àòü åãî â ýòè "ìíîãèå" ñêðèïòû. Ñòðóêòóà åãî
òàêàÿ:
require 'header.inc';
include
Ñòðóêòóðà:
include 'func.inc';
Ýòîò îïåðàòîð ïîçâîëÿåò âêëþ÷àòü êîä, ñîäåðæàùèéñÿ â óêàçàííîì
ôàéëå (func.inc â íàøåì ñëó÷àå) è âûïîëíÿòü åãî ñòîëüêî ðàç,
ñêîëüêî ïðîãðàììà âñòðå÷àåò ýòîò îïåðàòîð. Òî åñòü. Íàïðèìåð â ôàéëå
func.inc ó íàñ õðàíèòñÿ ïðîãðàììà âûâîäà íà ýêðàí
îïðåäåëåííûõ ïàðàìåòðîâ. Íó è êàæäûé ðàç, êîãäà íàì íóæíî áóäåò
âûâîäèòü ýòè ïàðàìåòðû ìû áóäåì âñòàâëÿòü â òåêñò íàøåé îñíîâíîé
ïðîãðàììû include 'func.inc', òî åñòü ýòî â ïðèíöèïå òîæå
ñàìîå, êàê åñëè-áû ìû âåçüäå â òàêèõ ñëó÷àÿõ âñòàâèëè-áû òåêñò,
ñîäåðàæèéñÿ â ôàéëå func.inc
Îáðàòèòå âíèìàíèå. Ðàçíèöà ìåæäó include è require
äîâîëüíî ñóùåñòâåííàÿ, ïîýòîìó ïîýêñïåðåìèíòèðóéòè ñ íèìè ñàìè, åñëè
âû åå òàê è íå óñìîòðåëè.