Ñèíòàêñèñ ÿçûêà php
Èçãîòîâëåíèå è óñòàíîâêà îãðàæäåíèé äëÿ ëåñòíèöû ïî âûãîäíûì öåíàì.
Êàæäàÿ êîìàíäà ÐÍÐ îáû÷íî íà÷èíàåòñÿ
ñ òýãà "<?php" è çàêàí÷èâàåòñÿ "?>". Åñëè âû èñïîëüçóåòå íåñêîëüêî êîìàíä
ïîäðÿä, îíè ìîãóò áûòü îáúåäèíåíû âíóòðè îäíîé ïàðû òýãîâ - â ýòîì ñëó÷àå êàæäóþ
êîìàíäó íåîáõîäèìî îòäåëÿòü äðóã îò äðóãà ñèìâîëîì ";". Â ëþáîì ìåñòå
ÐÍÐ-ñêðèïòà ìîæíî ðàçìåùàòü êîììåíòàðèè. Äëÿ íà÷àëà êîììåíòàðèÿ èñïîëüçóåòñÿ
ñèìâîëû "/*", à äëÿ åãî çàâåðøåíèÿ - "*/". Åñëè êîììåíòàðèé íåáîëüøîé, óäîáíåé
èñïîëüçîâàòü ñèìâîëû "//" - òîãäà âñå, ÷òî ñëåäóåò çà íèìè äî êîíöà ñòðîêè,
áóäåò èãíîðèðîâàòüñÿ, ïîäîáíî ëèøíèì ñèìâîëàì ïðîáåëà, òàáóëÿöèè è íîâîé
ñòðîêè.
ÐÍÐ ïîçâîëÿåò èñïîëüçîâàòü ïåðåìåííûå - ïðè ýòîì èõ íå íóæíî îïèñûâàòü òàê, êàê
ýòî äåëàåòñÿ â Visual Basic èëè Pascal. Âû ïðîñòî ââîäèòå íåîáõîäèìóþ ïåðåìåííóþ
òàì, ãäå âàì íóæíî è òîãäà, êîãäà âàì ýòî íóæíî. Èìåíà ïåðåìåííûõ íà÷èíàþòñÿ ñ
ñèìâîëà "$". Ïåðåìåííûå ìîãóò áûòü òðåõ òèïîâ: öåëûå, ñ ïëàâàþùåé çàïÿòîé è
ñèìâîëüíûå ñòðîêè. Õîòÿ ðàçäåëåíèå íà òèïû ñêîðåå óñëîâíîå, è êàæäàÿ ôóíêöèÿ
ñòðåìèòñÿ èñïîëüçîâàòü ïðàâèëüíûé òèï àâòîìàòè÷åñêè. Íàïðèìåð:
<?php $a = 7; $b = 9.5; $c = "Hello"; ?>.
Çäåñü ïåðåìåííîé "à" ïðèñâàèâàåòñÿ çíà÷åíèå "7", è îíà
ïðèîáðåòàåò òèï öåëî÷èñëåííîé. Ïåðåìåííàÿ "b" îáðåòàåò âåùåñòâåííûé òèï è
ñòàíîâèòñÿ ðàâíîé "9,5". Ñòðîêà "Hello" ïðèñâàèâàåòñÿ ïåðåìåííîé "ñ", â
ðåçóëüòàòå ÷åãî îíà ñòàíîâèòñÿ ñòðîêîâîé.
Äëÿ îòîáðàæåíèÿ ïåðåìåííûõ èëè ðåçóëüòàòîâ ðàáîòû ñêðèïòà èñïîëüçóåòñÿ êîìàíäà
echo. Âîò íåáîëüøîé ïðèìåð ðàáî÷åé ñòðàíèöû, äëÿ òîãî, ÷òî áû ìîæíî áûëî
îöåíèòü, êàê ïðîñòî âêëþ÷èòü PHP-ñêðèïò â îáû÷íûé html-äîêóìåíò:
<?php $d = date(d.m.Y);
echo "Ïîñëåäíèå îáíîâëåíèÿ: $d "; ?>
 ðåçóëüòàòå çàãðóçêè òàêîé ñòðàíèöû, ÐÍÐ
îáðàáîòàåò âñå êîìàíäû, êîòîðûå íàõîäÿòñÿ ìåæäó ñïåöèàëüíûìè òýãàìè, è âû
óâèäèòå, â äàííîì ñëó÷àå, ñòðîêó âðîäå "Ïîñëåäíèå îáíîâëåíèÿ: 8.04.2004".
Áðàóçåð ïîëó÷àåò ÷èñòûé HTML-êîä è åñëè ïðîñìîòðåòü åãî, âû íå íàéäåòå òàì
íèêàêèõ ñëåäîâ ïðåáûâàíèÿ ÐÍÐ.
ÃÄÅ ÈÑÏÎËÜÇÓÞÒ? Êàê Ïðîãðàììèðóþò?
PHP ïðàêòèêóåò â ðàçíûõ íàïðàâëåíèÿõ, íî áîëüøå åãî èñïîëüçóþò â ãëîáàëüíîé ñåòè
Èíòåðíåò. Ãëàâíîé åå çàäà÷åé ñòàíîâèòñÿ ñîçäàòü äèíàìè÷åñêóþ Web-ñòðàíèöó.
ßðêèìè ïðèìåðàìè ìîæíî âçÿòü ÷àòû, ôîðóìû, ãîñòåâûå êíèãè, äîñêè îáúÿâëåíèé,
ñðåäñòâà ãîëîñîâàíèÿ, ïî÷òû, ïîèñêà, â îáùåì, ïðè ïîìîùè ýòîãî ÿçûêà ìîæíî
ñäåëàòü âñå, ÷òî ñåé÷àñ ìîæíî óâèäåòü â ñåòè.
Öèêëû â ÐÍÐ
Öèêëû â ïðîãðàììèðîâàíèè - ýòî ïîâòîðÿþùèåñÿ íåñêîëüêî ðàç îïåðàöèè. Íà÷àëî
(òî÷êà îòñ÷åòà) óêàçûâàåòñÿ â íà÷àëå öèêëà, à äëèòåëüíîñòü åãî âûïîëíåíèÿ
îãðàíè÷èâàåòñÿ êàêèì-ëèáî óñëîâèåì. Ïðèìåðîì öèêëà ìîæåò ñëóæèòü êîïèðîâàíèå
íåñêîëüêèõ ôàéëîâ. Àëãîðèòì âûïîëíåíèÿ ýòîãî çàäàíèÿ ìîæíî îïèñàòü òàê:
óñòàíîâèòü ñ÷åò÷èê ñêîïèðîâàííûõ ôàéëîâ â íîëü, ñêîïèðîâàòü ôàéë, ïðîâåðèòü
çàêîí÷èëèñü ôàéëû èëè íåò, åñëè íåò - óâåëè÷èòü ñ÷åò÷èê ñêîïèðîâàííûõ ôàéëîâ,
âåðíóòüñÿ ê íà÷àëó öèêëà (îïÿòü ñêîïèðîâàòü ôàéë), åñëè äà - çàêîí÷èòü öèêë.
Òåïåðü ðàññìîòðèì, êàê öèêëû ðåàëèçóþòñÿ â ñèíòàêñèñå ÐÍÐ.
<?php
$i = 0; $n = 10;
while ($i <= $n):
echo $i."<br>\n";
$i++;
endwhile;
?>
Ñìûñë ñêðèïòà î÷åíü ïðîñò. Ïðèñâàèâàåì ïåðåìåííîé $i çíà÷åíèå, ñîîòâåòñòâóþùåå
íà÷àëó öèêëà, à ïåðåìåííîé $n - çíà÷åíèå êîíöà öèêëà. Äàëåå îòêðûâàåì öèêë
îïåðàòîðîì WHILE ( ), è âíóòðè åãî ñêîáîê îïèñûâàåì óñëîâèå, ïðè âûïîëíåíèè
êîòîðîãî öèêë áóäåò ïðîäîëæàòü ñâîþ ðàáîòó.  íàøåì ñëó÷àå âûïîëíåíèå íå
ïðåðâåòñÿ, ïîêà $i <= $n. Êàê òîëüêî ýòî óñëîâèå áóäåò íàðóøåíî, óïðàâëåíèå
áóäåò ïåðåäàíî ñëåäóþùåé çà öèêëîì îïåðàöèè ÐÍÐ. Âíóòðè öèêëà ìîãóò áûòü ëþáûå
êîìàíäû ÐÍÐ (ðàçäåëåííûå ìåæäó ñîáîé êàê îáû÷íî - òî÷êîé ñ çàïÿòîé). Òîëüêî
íóæíî ñëåäèòü çà òåì, ÷òî áû ïåðåìåííàÿ $i, èñïîëüçóåìàÿ â öèêëå, áûëà óâåëè÷åíà
(è ñîâñåì íå îáÿçàòåëüíî íà åäèíèöó), èíà÷å öèêë ñòàíåò áåñêîíå÷íûì, è
èíòåðïðåòàòîð ÐÍÐ áóäåò âûïîëíÿòü åãî, ïîêà íå çàêðîåòñÿ ñåññèÿ (îêíî áðàóçåðà).
Îïåðàòîð ENDWHILE îçíà÷àåò êîíåö öèêëà. Ñêðèïò, îïèñàííûé çäåñü, âûâîäèò íà
ýêðàí áðàóçåðà öèôðû íà÷èíàÿ ñ 0 äî 10. Ïðè÷åì öèôðû áóäóò âûâåäåíû â ñòîëáèê,
òàê êàê ïîñëå âûâîäà íà ýêðàí çíà÷åíèÿ ïåðåìåííîé $i ìû âûâîäèò HTML-òåã
ïåðåâîäà ñòðîêè (<br>). Ïîñëå íåãî èäåò ïåðåâîä ñòðîêè äëÿ êîäà, ïåðåäàííîãî
êëèåíòó (åãî ìîæíî ïîñìîòðåòü, âûáðàâ ïðîñìîòð â âèäå HTML â ìåíþ Âàøåãî
áðàóçåðà). Ýòî íå îáÿçàòåëüíî, íî òàêèì îáðàçîì äîñòèãàåòñÿ óäîáî÷èòàåìîñòü
êîäà. Äëÿ ïðèìåðà ÿ ïðèâîæó åùå îäèí âàðèàíò âûïîëíåíèÿ óêàçàííîé âûøå çàäà÷è,
íî óæå ãîðàçäî áîëåå ïðàâèëüíî â ñìûñëå ÷èñòîòû êîäà è ñêîðîñòè âûïîëíåíèÿ.
<?php
$i = 0; while ($i <= 10) { echo $i++."<br>"; }
?>
Óäèâèòåëüíî, íî ýòè äâà ïðèìåðà àáñîëþòíî èäåíòè÷íû â ñìûñëå ðåçóëüòàòà. Íî ñàì
ñêðèïò óìåñòèëñÿ â îäíó ñòðî÷êó! Ðàçíèöà - â ñòèëå ïðèìåíåíèÿ îïåðàòîðà öèêëà è
â òîì, ÷òî ïåðåìåííàÿ öèêëà âûâîäèòñÿ íà ýêðàí îäíîâðåìåííî ñ óâåëè÷åíèåì. È â
ýòîì - âñÿ ïðåëåñòü ïðîãðàììèðîâàíèÿ. Èíîãäà áûâàåò ÷òî-òî ïðîñòîå ñäåëàòü î÷åíü
òðóäíî, à ñëîæíîå - ëåãêî. Íèêîãäà íå ñòîèò îñòàíàâëèâàòüñÿ íà óæå äîñòèãíóòîì,
à ïðîáîâàòü ïðèìåíÿòü äðóãèå àëãîðèòìû è ðåøåíèÿ. Âîò Âàì åùå îäèí âàðèàíò
ðåøåíèÿ. Îí îñíîâàí íà ïðèìåíåíèè êîíñòðóêöèè ÐÍÐ DO:WHILE. Ýòî òîæå öèêë, íî
îòëè÷àåòñÿ îí îò ïðîñòî WHILE òåì, ÷òî çíà÷åíèå ëîãè÷åñêîãî âûðàæåíèÿ
ïðîâåðÿåòñÿ íå äî (êàê â ñëó÷àå ñ WHILE), à ïîñëå îêîí÷àíèÿ ðàáîòû îïåðàòîðîâ,
âêëþ÷åííûõ â ñàì öèêë. Òàêèì îáðàçîì, DO:WHILE ãàðàíòèðîâàííî áóäåò âûïîëíåí
õîòÿ áû îäèí ðàç, ÷òî â ñëó÷àå ñ WHILE ñîâñåì íå îáÿçàòåëüíî. Âåäü åñëè óñëîâèå
åñòü ëîæü, óïðàâëåíèå ñðàçó áóäåò ïåðåäàíî äàëüøå. Äëÿ öèêëîâ DO..WHILE
ñóùåñòâóåò òîëüêî îäèí âèä ñèíòàêñèñà:
<?php
$i = 0; do { echo $i."<br>\n"; $i++; } while ($i <=10);
?>
Êàçàëîñü áû, äîñòàòî÷íî âàðèàíòîâ, íî ýòî íå âñå - ñóùåñòâóåò åùå íåñêîëüêî
âàðèàíòîâ öèêëà. È, êàê ïðàâèëî, èìåííî îíè è èñïîëüçóþòñÿ ïðîãðàììèñòàìè. Öèêëû
FOR - íàèáîëåå ìîùíûå öèêëû â PHP. Îíè ðàáîòàþò ïîäîáíî èõ àíàëîãàì â ÿçûêå
ïðîãðàììèðîâàíèÿ C. Ñèíòàêñèñ öèêëà FOR:
FOR (expr1; expr2; expr3) statement
Ïåðâîå âûðàæåíèå (expr1) áåçóñëîâíî âû÷èñëÿåòñÿ (âûïîëíÿåòñÿ) â íà÷àëå öèêëà. Â
íà÷àëå êàæäîé èòåðàöèè (ïðîõîä öèêëà) âû÷èñëÿåòñÿ expr2. Åñëè îíî ðàâíî TRUE
(èñòèíà), òî öèêë ïðîäîëæàåòñÿ è âûïîëíÿþòñÿ âëîæåííûé(å) îïåðàòîð(û). Åñëè îíî
ðàâíî FALSE (ëîæü), òî öèêë çàêàí÷èâàåòñÿ.  êîíöå êàæäîé èòåðàöèè âû÷èñëÿåòñÿ
(èñïîëíÿåòñÿ) expr3. Êàæäîå èç ýòèõ âûðàæåíèé ìîæåò áûòü ïóñòûì. Åñëè expr2
ïóñòî, òî öèêë ïðîäîëæàåòñÿ áåñêîíå÷íî (PHP ïî óìîë÷àíèþ ñ÷èòàåò åãî ðàâíûì TRUE,
êàê è â ÿçûêå Ñ). Ýòî íå òàê áåñïîëåçíî, êàê ìîãëî áû ïîêàçàòüñÿ, òàê êàê
çà÷àñòóþ òðåáóåòñÿ çàêîí÷èòü âûïîëíåíèå öèêëà èñïîëüçóÿ îïåðàòîð BREAK â
ñî÷åòàíèè ñ ëîãè÷åñêèì óñëîâèåì âìåñòî èñïîëüçîâàíèÿ ëîãè÷åñêîãî âûðàæåíèÿ â FOR.
Åñëè âíóòðè öèêëà (ëþáîãî) âñòðå÷àåòñÿ ýòîò îïåðàòîð (BREAK), öèêë áåçóñëîâíî
ïðåêðàùàåò âûïîëíåíèå èòåðàöèè, è óïðàâëåíèå ïåðåäàåòñÿ ñëåäóþùåé çà öèêëîì
êîìàíäå. Åñëè âñòðå÷àåòñÿ îïåðàòîð CONTINUE - óïðàâëåíèå ïåðåäàåòñÿ íà íà÷àëî
ñëåäóþùåãî áëèæàéøåãî öèêëà. Äëÿ ïðèìåðà ïîñìîòðèì, êàê ìîæíî åùå ðåàëèçîâàòü
âûâîä íà ýêðàí ïîëüçîâàòåëÿ ñïèñîê ÷èñåë. Íå çàáûâàéòå ïðî ïåðåõîä èç HTML â
PHP.
/* ïðèìåð 1 */
for ($i = 1; $i <= 10; $i++)
{ print $i; }
/* ïðèìåð 2 */
for ($i = 1;;$i++)
{ if ($i > 10) { break; } print $i; }
/* ïðèìåð 3 */
$i = 1; for (;;)
{ if ($i > 10) { break; } print $i; $i++; }
/* ïðèìåð 4 */
for ($i = 1; $i <= 10; print $i, $i++) ;
Íà ïðèìåðå òðèâèàëüíîé çàäà÷è ìû ðàññìîòðåëè, êàê ÐÍÐ ïîçâîëÿåò ðàçíûìè
ñïîñîáàìè äîñòè÷ü îäíîé öåëè. Êàê ïðàâèëî, íà ïðàêòèêå ïðèìåíÿåòñÿ íàèáîëåå
ïîäõîäÿùàÿ êîíñòðóêöèÿ, íî ÷àñòî â ýòîì íåò íèêàêîé íåîáõîäèìîñòè, äîñòàòî÷íî
èñïîëüçîâàòü ñàìûé ïðîñòîé è ëîãè÷íûé âàðèàíò.
Ñîêîëîâ Åâãåíèé
Ïðè ïåðåïå÷àòêå èíôîðìàöèè äåëàéòå, ïîæàëóéñòà, ññûëêó íà íàø ñàéò
(ëèáî ïîäåëèòüñÿ âêîíòàêòå, ãóãë+ èëè äåëèòåñü â îäíîêëàññíèêàõ ñòàòü¸é). Ñïàñèáî!
Èñòî÷íèê: www.wr-script.ru©, 2004-2026ã.
Äåëèòåñü ñ äðóçüÿìè â ñîöñåòÿõ. Àêòèâíûå êîììåíòàòîðû ïîëó÷àþò ñâåæèå ñêðèïòû è áåñïëàòíûå äîðàáîòêè îò WR-Script.ru!
|