Ñèíòàêñèñ ÿçûêà 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!

Âåðíóòüñÿ ê ñòàòüÿì ïîìîùè WEB-ìàñòåðó

WR-Счётчик