Óïðàâëÿþùèå ñòðóêòóðû
Àâòîð: | Àðòåìüåâ Ñåðãåé Èãîðåâè÷ |
ICQ: | 438856621 |
email: | _spin_@bk.ru |
Âñå ñêðèïòû â PHP ïðåäñòàâëÿþò ñîáîé íàáîð ðàçëè÷íûõ âûðàæåíèé, êîòîðûå âûïîëíÿþòñÿ ïîñëåäîâàòåëüíî. Âûðàæåíèÿ ìîæíî îáúåäèíÿòü â ãðóïïû âûðàæåíèé ïðè ïîìîùè ò.í. "îïåðàòîðíûõ ñêîáîê" "{" è "}". Ãðóïïû âûðàæåíèé èñïîëüçóþòñÿ â îñíîâíîì âìåñòå ñ óïðàâëÿþùèìè êîíñòðóêöèÿìè ÿçûêà PHP.
Óïðàâëÿþùèå êîíñòðóêöèè ÿçûêà - ýòî íàáîðû ñëóæåáíûõ ñëîâ, ïîçâîëÿþùèå èçìåíÿòü õîä âûïîëíåíèÿ ñêðèïòà. Âñå êîíñòðóêöèè ìîæíî óñëîâíî ðàçäåëèòü íà êîíñòðóêöèè áèíàðíîãî âûáîðà, ìíîæåñòâåííîãî âûáîðà, ïîâòîðåíèÿ è âêëþ÷åíèÿ.
Êîíñòðóêöèè áèíàðíîãî (äâîéñòâåííîãî) âûáîðà ïîçâîëÿþò â çàâèñèìîñòè îò óñëîâèÿ âûïîëíèòü ëèáî ïåðâîå, ëèáî âòîðîå äåéñòâèå.  PHP ýòè êîíñòðóêöèè ïðåäñòàâëåíû êëþ÷åâûìè ñëîâàìè if, else, elseif è endif.
Êîíñòðóêöèÿ if ïîçâîëÿåò âûïîëíèòü êàêîå-òî äåéñòâèå, åñëè óñëîâèå èñòèííî. Ýòîò ïðèìåð ÷èòàåòñÿ êàê "ÅÑËÈ óñëîâèå èñòèííî ÒÎ âûïîëíèòü âûðàæåíèÿ".
<?php if(óñëîâèå) îäèíî÷íîå_âûðàæåíèå; // èëè if(óñëîâèå) { íåñêîëüêî; ïîñëåäîâàòåëüíûõ; âûðàæåíèé; } ?>
Êîíñòðóêöèÿ else èñïîëüçóåòñÿ ñîâìåñòíî ñ if è îïðåäåëÿåò äåéñòâèå, êîãäà óñëîâèå ëîæíî. Íèæåñëåäóþùèé ïðèìåð ÷èòàåòñÿ êàê "ÅÑËÈ óñëîâèå èñòèííî ÒÎ âûïîëíèòü âûðàæåíèÿ-1 ÈÍÀ×Å âûïîëíèòü âûðàæåíèÿ-2".
<?php if(óñëîâèå) { âûðàæåíèÿ-1; } else { âûðàæåíèÿ-2; } ?>
Êîíñòðóêöèÿ elseif àíàëîãè÷íà else, íî ïîçâîëÿåò ñîçäàâàòü öåïî÷êè óñëîâèé è äåéñòâèé. Ïðèâåä¸ííûé íèæå ïðèìåð ÷èòàåòñÿ êàê "ÅÑËÈ óñëîâèå-1 èñòèííî ÒÎ âûïîëíèòü âûðàæåíèÿ-1 ÈÍÀ×Å ÅÑËÈ óñëîâèå-2 èñòèííî ÒÎ âûïîëíèòü âûðàæåíèÿ-2 ÈÍÀ×Å ...".
<?php if(óñëîâèå-1) { âûðàæåíèÿ-1; } elseif(óñëîâèå-2) { âûðàæåíèÿ-2; } elseif(óñëîâèå-3) ... ?>
Êîíñòðóêöèÿ endif ìîæåò èñïîëüçîâàòüñÿ â ñëó÷àå àëüòåðàíòèâíîé ôîðìû çàïèñè óïðàâëÿþùèõ êîíñòðóêöèé. Îòëè÷èå àëüòåðíàòèâíîé ôîðìû îò ñòàíäàðòíîé â òîì, ÷òî îòêðûâàþùàÿ îïåðàòîðíàÿ ñêîáêà "{" çàìåíÿåòñÿ íà äâîåòî÷èå ":", çàêðûâàþùàÿ ñêîáêà óäàëÿòñÿ, à ãðàíèöà êîíñòðóêöèè îïðåäåëÿåòñÿ ïî êëþ÷åâîìó ñëîâó endXXX, ãäå XXX - òèï êîíñòðóêöèè. Íàïðèìåð, äëÿ ñâÿçêè if...endif...else òèï êîíñòðóêöèè - "if", çíà÷èò ãðàíèöà áóäåò îïðåäåëÿòüñÿ ïî êëþ÷åâîìó ñëîâó "endif". Ñðàâíèòå:
<?php // Ñòàíäàðòíàÿ ôîðìà çàïèñè: if(óñëîâèå-1) { âûðàæåíèÿ-1; } elseif(óñëîâèå-2) { âûðàæåíèÿ-2; } else { âûðàæåíèÿ-3; } // Àëüòåðíàòèâíàÿ ôîðìà çàïèñè: if(óñëîâèå-1): âûðàæåíèÿ-1; elseif(óñëîâèå-2): âûðàæåíèÿ-2; else: âûðàæåíèÿ-3; endif; ?>
Êàêîé èç ôîðì ïîëüçîâàòüñÿ - êàæäûé ðàçðàáîò÷èê ðåøàåò äëÿ ñåáÿ ñàì, íî áîëüøèíñòâî âñ¸ æå ïðèäåðæèâàåòñÿ ñòàíäàðòíîé ôîðìû çàïèñè (ò.å. ñ íîðìàëüíûìè îïåðàòîðíûìè ñêîáêàìè "{" è "}")
Êîíñòðóêöèÿ ìíîæåñòâåííîãî âûáîðà ïðåäñòàâëÿåò ñîáîé êîìïàêòíóþ ôîðìó çàïèñè äëèííûõ öåïî÷åê óñëîâèé âèäà "if...elseif....elseif.......else".  PHP òàêàÿ êîíñòðóêöèÿ íîñèò íàçâàíèå switch è èìååò äîñòàòî÷íî ïðîñòóþ ôîðìó çàïèñè:
<?php switch (âûðàæåíèå/ïåðåìåííàÿ) { case çíà÷åíèå-1: âûðàæåíèÿ-1; break; case çíà÷åíèå-2: âûðàæåíèÿ-2; break; ... default: âûðàæåíèÿ-N; break; } ?>
Ò.å. ìû óêàçûâàåì ïåðåìåííóþ èëè âûðàæåíèå, ïîñëå ÷åãî óêàçûâàåì âîçìîæíûå çíà÷åíèÿ è äåéñòâèÿ, ñîîòâåòñòâóþùèå ýòèì çíà÷åíèÿì. Âñå çíà÷åíèÿ, êîòîðûå ìû ÿâíî íå óêàçàëè, ïîïàäóò â áëîê "default". Çàìå÷àòåëüíàÿ îñîáåííîñòü switch - âîçìîæíîñòü óêàçûâàòü ñïèñîê âûðàæåíèé îäíîâðåìåííî äëÿ íåñêîëüêèõ âàðèàíòîâ. Äëÿ ýòîãî íåñêîëüêî áëîêîâ "case" çàïèñûâàþòñÿ ïîñëåäîâàòåëüíî, íàïðèìåð:
<?php switch (âûðàæåíèå/ïåðåìåííàÿ) { case çíà÷åíèå-1: case çíà÷åíèå-2: case çíà÷åíèå-3: case çíà÷åíèå-4: âûðàæåíèÿ_äëÿ_ñëó÷àåâ_1_2_3_4; break; case çíà÷åíèå-5: âûðàæåíèÿ_äëÿ_ñëó÷àÿ_5; break; ... default: âûðàæåíèÿ-N; break; } ?>
Switch î÷åíü óäîáåí, êîãäà çíà÷åíèÿ ïðèíèìàþò êîíêðåòíûå ôèêñèðîâàííûå çíà÷åíèÿ. Íàïðèìåð, äåéñòâèÿ âîäèòåëÿ íà ñâåòîôîðå ìîæíî çàïèñàòü òàê:
<?php $color = 'red'; switch ($color) { case 'êðàñíûé': echo 'Ñòîÿòü'; break; case 'êðàñíî-æåëòûé': echo 'Ïðèãîòîâèòüñÿ'; break; case 'æåëòûé': echo 'Îñòàíîâèòüñÿ'; break; case 'æåëòûé ìèãàþùèé': echo 'Ïî îáñòàíîâêå'; break; case 'çåë¸íûé': echo 'Åõàòü'; break; default: // íàïðèìåð, ñâåòîôîð âûêëþ÷åí echo 'Ïî îáñòàíîâêå'; break; } ?>
Êîíñòðóêöèè ïîâòîðåíèÿ (îðãàíèçàöèè öèêëîâ) ïðåäíàçíà÷åíû äëÿ ìíîãîêðàòíîãî âûïîëíåíèÿ îäíèõ è òåõ æå âûðàæåíèé. Ê ýòèì êîíñòðóêöèÿì îòíîñÿòñÿ while, do-while, for è foreach.
While ("óàéë") è do-while ("äó-óàéë") ïðåäíàçíà÷åíû äëÿ îðãàíèçàöèè öèêëîâ â ñëó÷àÿõ, êîãäà ÷èñëî ïîâòîðåíèé çàðàíåå íåèçâåñòíî èëè ìîæåò èçìåíèòüñÿ â ïðîöåññå âûïîëíåíèÿ öèêëà. Îñíîâîé ýòèõ êîíñòðóêöèé ÿâëÿåòñÿ ëîãè÷åñêîå âûðàæåíèå (óñëîâèå), à öèêë ïîâòîðÿåòñÿ äî òåõ ïîð, ïîêà óñëîâèå èñòèííî (ðàâíî TRUE).
Ôîðìàëüíàÿ çàïèñü êîíñòðóêöèé âûãëÿäèò òàê:
<?php while (óñëîâèå) { âûðàæåíèÿ; } do { âûðàæåíèÿ; } while (óñëîâèå); ?>
Ãëàâíîå îòëè÷èå while îò do-while â òîì, ÷òî do-while âñåãäà âûïîëíÿåòñÿ õîòÿ áû îäèí ðàç äàæå åñëè óñëîâèå èçíà÷àëüíî ëîæíî. Íàïðèìåð:
<?php $i = 0; while ($i > 0) { echo 'i áîëüøå íóëÿ! (öèêë while)'; } // íå âûâîäèòñÿ íè÷åãî do { echo 'i áîëüøå íóëÿ! (öèêë do-while)'; } while ($i > 0); // âûâîäèòñÿ "i áîëüøå íóëÿ! (öèêë do-while)" ?>
Èç ïðèìåðà âèäíî, ÷òî ïîëüçîâàòüñÿ öèêëîì do-while íóæíî àêêóðàòíî, èíà÷å åñòü áîëüøîé ðèñê ïîëó÷èòü íåîæèäàííûå è ïàðàäîêñàëüíûå ðåçóëüòàòû, òàêèå êàê â íàøåì ïðèìåðå. Íåâåðíîå ïðèìåíåíèå öèêëîâ î÷åíü ÷àñòî ïðèâîäèò ê ïîâÿëåíèþ ëîãè÷åñêèõ îøèáîê, êîòîðûå íà ïîðÿäîê ñëîæíåå âûÿâèòü è ëîêàëèçîâàòü, íåæåëè âñå ïðî÷èå.
Êîíñòðóêöèè while è do-while î÷åíü óäîáíî èñïîëüçîâàòü ïðè ïîñòðî÷íîì ÷òåíèè èç ôàéëà èëè îáðàáîòêå ðåçóëüòàòîâ çàïðîñîâ ê áàçàì äàííûõ, ò.ê. çàðàíåå íåèçâåñòíî, ñêîëüêî ðàç íàäî áóäåò âûïîëíèòü òðåáóåìûé íàáîð âûðàæåíèé.
<?php $i = 0; while ($i > 0) { echo 'i áîëüøå íóëÿ! (öèêë while)'; } // íå âûâîäèòñÿ íè÷åãî do { echo 'i áîëüøå íóëÿ! (öèêë do-while)'; } while ($i > 0); // âûâîäèòñÿ "i áîëüøå íóëÿ! (öèêë do-while)" ?>
Ñëåäóþùàÿ êîíñòðóêöèÿ - for ("ôîð"). Ýòà êîíñòðóêöèÿ ïðåäïîëàãàåò, ÷òî êîëè÷åñòâî èòåðàöèé öèêëà çàðàíåå èçâåñòíî èëè âû÷èñëèìî äî íà÷àëà öèêëà. Ôîðìàëüíî for çàïèñûâàåòñÿ òàê:
<?php for (ïåðåìåííàÿ; óñëîâèå; îïåðàòîð ) { âûðàæåíèÿ; } ?>
Áëîê "ïåðåìåííàÿ" îïèñûâàåò ïåðåìåííóþ-ñ÷¸ò÷èê è å¸ íà÷àëüíîå çíà÷åíèå, "óñëîâèå" îïðåäåëÿåò êîëè÷åñòâî èòåðàöèé, à "îïåðàòîð" - äåéñòâèå íàä ïåðåìåííîé-ñ÷¸ò÷èêîì ÏÎÑËÅ êàæäîé èòåðàöèè. Íàïðèìåð, åñëè âàì íàäî âûâåñòè 10 ðàç îäíó è òó æå ñòðîêó, ìîæíî âîñïîëüçîâàòüñÿ òàêèì êîäîì:
<?php for ($i = 0; $i < 10; $i++ ) { echo "Êîïèÿ ñòðîêè íîìåð " . $i; } ?>
Çäåñü ìû óêàçàëè, ÷òî $i - ýòî ïåðåìåííàÿ ñ÷¸ò÷èê, ñ÷èòàòü íà÷èíàåì ñ íóëÿ, ïîñëå êàæäîé èòåðàöèè ó÷åëè÷èâàåì $i íà åäèíèöó, ïðîäîëæàåì èòåðàöèè ïîêà $i ìåíüøå 10. Ïðèâåä¸ííé êîä öèêëà ôóíêöèîíàëüíî ýêâèâàëåíòåí ñëåäóþùåìó (çàïèñàííîìó áåç öèêëà):
<?php echo "Êîïèÿ ñòðîêè íîìåð 0"; echo "Êîïèÿ ñòðîêè íîìåð 1"; ... echo "Êîïèÿ ñòðîêè íîìåð 9"; ?>
Äëÿ öèêëà for ñîâåðøåííî íå îáÿçàòåëüíî çíàòü êîëè÷åñòâî èòåðàöèé íà ýòàïå íàïèñàíèÿ ñêðèïòà. Ãëàâíîå - ìû äîëæíû ñóìåòü âû÷èñëèòü ýòî êîëè÷åñòâî è ïåðåäàòü â öèêë. Íàïðèìåð:
<?php // êîä ìîæíî èñïîëüçîâàòü, íàïðèìåð, äëÿ // ñîçäàíèÿ íàâèãàòîðà ïî // ñòðàíèöàì êàòàëîãà òîâàðîâ // îáùåå êîëè÷åñòâî ýëåìåíòîâ â êàòàëîãå $rows = 100; // êîëè÷åñòâî îäíîâðåìåííî îòîáðàæàåìûõ // ýëåìåíòîâ íà ñòðàíèöå $rows_per_page = 16; // âû÷èñëÿåì êîëè÷åñòâî ñòðàíèö $pages = ceil($rows/$rows_per_page); $page_line = ''; // äëÿ êàæäîé ñòðàíèöû ñîçäà¸ì ñîîòâåòñòâóþùóþ ññûëêó for ($i = 0; $i < $pages; $i++ ) { $page_line .= '<a href="?page=' . $i . '">[' . ($i + 1) . ']</a>'; } // âûâîäèì ãîòîâóþ ñòðîêó íàâèãàöèè echo $page_line; // âûâåäåò "[1][2][3][4][5][6][7]"; ?>
Ïîñëåäíÿÿ êîíñòðóêöèÿ öèêëîâ - foreach. Ýòî ñàìàÿ ïðîñòàÿ è ñàìàÿ ñâîåîáðàçíàÿ êîíñòðóêöèÿ èç ðàññìîòðåííûõ. Çàïèñûâàåòñÿ îíà òàê:
<?php foreach(ìàññèâ as ôîðìàò_ýëåìåíòà) { âûðàæåíèÿ; } ?>
Çäåñü "ìàññèâ" - ïåðåìåííàÿ òèïà array, ñîçäàííàÿ ðàíåå, à "ôîðìàò_ýëåìåíòà" - ýòî ôîðìàëüíîå îïèñàíèå îäíîãî ýëåìåíòà ìàññèâà. Ðàññìîòðèì íà ïðèìåðàõ:
<?php // îäíîìåðíûé íå-àññîöèàòèâíûé ìàññèâ $names = array('Àëåêñàíäð', 'Âëàäèìèð', 'ßðîñëàâ'); foreach($names as $single_name) { echo 'èìÿ èç ìàññèâà:' . $name . '<br />\n'; } // îäíîìåðíûé àññîöèàòèâíûé ìàññèâ $names = array( 'Èìÿ' => 'Àëåêñàíäð', 'Ôàìèëèÿ' => 'Âëàäèìèðîâè÷', 'Îò÷åñòâî' => 'Ãåíåðàëîâ', 'Òåëåôîí' => '+7(123)456-78-90'); foreach($names as $param => $value) { echo $param . ': ' . $value . '<br />\n'; } ?>
Ïðè èñïîëüçîâàíèÿ ìíîãîìåðíûõ ìàññèâîâ â foreach îíè áóäóò èíòåðïðåòèðîâàòüñÿ êàê âëîæåííûå àññîöèàòèâíûå ìàññèâû. Åñëè â ïîñëåäíåì ïðèìåðå $names áóäåò äâóìåðíûì ìàññèâîì, òî $param áóäåò ñîäåðæàòü íîìåð ìàññèâà ïåðîâîãî óðîâíÿ, à $value - ìàññèâ âòîðîãî óðîâíÿ. Ïîäðîáíåå î ìàññèâàõ è ðàáîòå ñ íèìè ìû ïîãîâîðèì â ñîîòâåòñòâóþùåì óðîêå.
Öèêë foreach ïåðåáèðàåò âñå ýëåìåíòû ìàññèâà, íåçàâèñèìî îò èõ êîëè÷åñòâà. Íåäîñòàòîê ýòîé êîíñòðóêöèè - íåâîçìîæíîñòü ìîäèôèêàöèè ýëåìåíòîâ ìàññèâà âî âðåìÿ èòåðàöèè. Ñâÿçàíî ýòî ñ òåì, ÷òî foreach ïåðåä íà÷àëîì öèêëà ñîçäà¸ò êîïèþ ìàññèâà, êîòîðàÿ óíè÷òîæàåòñÿ ïîñëå îêîí÷àíèÿ öèêëà. Ñëåäîâàòåëüíî, âñå èçìåíåíèÿ ïðè âûõîäå èç öèêëà òåðÿþòñÿ. Ýòîò íåäîñòàòîê áûë èñïðàâëåí â PHP âåðñèè 5 è âûøå çà ñ÷åò äîáàâëåíèÿ ññûëêè íà ýëåìåíò äàííûõ:
<?php // îäíîìåðíûé íå-àññîöèàòèâíûé ìàññèâ $names = array('Àëåêñàíäð', 'Âëàäèìèð', 'ßðîñëàâ'); foreach($names as &$single_name) { $name .= 'îâè÷'; } echo implode(', ', $names); // â PHP äî 5 âåðñèè âûâåäåò: // "Àëåêñàíäð, Âëàäèìèð, ßðîñëàâ" // â PHP 5 âûâåäåò: // "Àëåêñàíäðîâè÷, Âëàäèìèðîâè÷, ßðîñëàâîâè÷" ?>
Ñïåöèàëüíî äëÿ óïðàâëåíèÿ èñïîëíåíèåì öèêëîâ è ñêðèïòîâ â PHP ñóùåñòâóåò íåñêîëüêî êëþ÷åâûõ ñëîâ: break, continue è return.
break ïðèìåíÿåòñÿ âíóòðè öèêëîâ è ñëóæèò äëÿ íåìåíäëåííîãî ïðåêðàùåíèÿ èòåðàöèé öèêëà. Óïðàâëåíèå ïåðåäà¸òñÿ íà ñëåäóþùåå ïîñëå öèêëà âûðàæåíèå. Íàïðèìåð, ìîæíî ïðåðâàòü öèêë ïðè âîçíèêíîâåíèè îïðåäåë¸ííûõ óñëîâèé:
<?php $names = ('ßðîñëàâ', 'Àëåêñàíäð', ...); foreach($i = 0; $i < 100; $i++) { if($names[$i] == 'Àëåêñàíäð') break; } echo 'Èìÿ "Àëåêñàíäð" ñòîèò íà ' . $i . ' ïîçèöèè'; // âûâåäåò: // 'Èìÿ "Àëåêñàíäð" ñòîèò íà 2 ïîçèöèè' ?>
break î÷åíü ïîëåçåí â ñëó÷àå ïîèñêà íóæíîãî ýëåìåíòà ìàññèâà, ò.ê. ìîæíî îñòàíîâèòü ïîèñê ñðàçó ïîñëå íàõîæäåíèÿ íóæíîãî ýëåìåíòà è íå ëîïàòèòü çàâåäîìî ïóñòîé îñòàòîê ìàññèâà.
Ñëåäóþùåå êëþ÷åâîå ñëîâî - continue. Ïðåäíàçíà÷åíî äëÿ íåìåäëåííîãî ïåðåõîäà ê ñëåäóþùåé èòåðàöèè. Íàïðèìåð, ìîæíî ïðåîáðàçîâàòü ïðåäûäóùèé ïðèìåð ñëåäóþùèì îáðàçîì:
<?php $names = ('ßðîñëàâ', 'Àëåêñàíäð', ...); foreach($i = 0; $i < 100; $i++) { if($names[$i] != 'Àëåêñàíäð') continue; echo 'Èìÿ "Àëåêñàíäð" ñòîèò íà ' . $i . ' ïîçèöèè'; } // âûâåäåò: // 'Èìÿ "Àëåêñàíäð" ñòîèò íà 2 ïîçèöèè' ?>
Òàêîé öèêë ïåðåáåð¸ò âñå ýëåìåíòû ìàññèâà è âûïîëíèò êîä "echo ..." òîëüêî äëÿ òåõ ýëåìåíòîâ, ãäå çíà÷åíèå ðàâíî "Àëåêñàíäð". Òàêîå ïîñòðîåíèå öèêëà óäîáíî ïðèìåíÿòü äëÿ ñëó÷àåâ, êîãäà âûðàæåíèÿ äîëæíû áûòü ïðèìåíåíû ê íåñêîëüêèì ýëåìåíòà ìàññèâà.
Ïîñëåäíåå êëþ÷åâîå ñëîâî - return. Îíî ïðåäíàçíà÷åíî äëÿ íåìåäëåííîãî âûõîäà èç ôóíêöèè è âîçâðàòà çíà÷åíèÿ (ïðè íåîáõîäèìîñòè). Ïîäðîáíåå îá èñïîëüçîâàíèè return ìû ïîãîâîðèì ïðè ðàññìîòðåíèè ôóíêöèé.
Ïîñëåäíÿÿ ãðóïïà êîíñòðóêöèé - êîíñòðóêöèè âêëþ÷åíèÿ. Îíè ïðåäíàçíà÷åíû äëÿ âêëþ÷åíèÿ â òåêñò ñêðèïòà êàêèõ-ëèáî äàííûõ è êîäà, íàõîäÿùèõñÿ â äðóãîì ôàéëå. Âñåãî ñóùåñòâóåò ÷åòûðå âàðèàíòà: include, include_once, require, require_once.
Êîíñòðóêöèè ñ ïðèñòàâêîé "_once" îòëè÷àþòñÿ îò ïðî÷èõ òåì, ÷òî ãàðàíòèðóþò îäíîêðàòíîå âêëþ÷åíèå ôàéëà â ðàìêàõ âñåõ çàäåéñòâîâàíûõ ôàéëîâ. Ò.å. åñëè ó âàñ åñòü 10 ôàéëîâ è â êàæäîì íåîáõîäèìî ïîäêëþ÷èòü ôàéë ñ îïèñàíèåì, íàïðèìåð, êëàññà, òî ïðè èñïîëüçîâàíèè îáû÷íûõ require èëè include PHP âûäàñò îøèáêó "íåäîïóñòèìî ïîâòîðíîå îáÿâëåíèå êëàññà" óæå íà âòîðîé âñòðåòèâøåéñÿ êîìàíäå âêëþ÷åíèÿ. Ñ äðóãîé ñòîðîíû, include_once èëè require_once ïðåäâàðèòåëüíî ïðîâåðÿò ïðåäûäóùèå âêëþ÷åíèÿ, è åñëè ôàéë óæå áûë ïîäêëþ÷åí - ïîâòîðíî ïîäêëþ÷àòü åãî íå áóäóò.
Îòëè÷èå ìåæäó include è require çàêëþ÷åíî â ïîâåäåíèè ïðè îòñóòñâóþùåì ôàéëå äëÿ ïîäêëþ÷åíèÿ. Åñëè include èëè inclide_once íå íàõîäÿò óêàçàííûé ôàéë, òî âûäàþò ïðåäóïðåæäåíèå äëÿ ïîëüçîâàòåëÿ. À âîò require è require_once ãåíåðèðóþò îøèáêó è ïðåêðàùàþò äàëüíåéøåå âûïîëíåíèå ñêðèïòà.
Ôîðìàò âñåõ ÷åòûð¸õ êîíñòðóêöèé ïðàêòè÷åñêè îäèíàêîâ. Èìåíà ïîäêëþ÷àåìûõ ôàéëîâ ìîæíî çàïèñûâàòü êàê â ïîëíîé, òàê è ñîêðàù¸ííîé ôîðìå.
<?php include('engine/filename.php'); include_once('myclass.class.php'); require('./../utils/db.php'); require_once('./../config/config_db.inc'); ?>
ß áû ðåêîìåíäîâàë ìàêñèìàëüíî ÷àñòî ïîëüçîâàòüñÿ require_once ñ îòíîñèòåëüíûìè ïóòÿìè ê ôàéëàì. Âî-ïåðâûõ, ýòî ãàðàíòèðóåò íàëè÷èå âñåõ òðåáóåìûõ ôàéëîâ, à âî-âòîðûõ - äåëàåò íåâîçìîæíûìè îøèáêè ïîâòîðíîãî îáúÿâëåíèÿ êëàññîâ è ïåðåìåííûõ. À â òðåòüèõ - óâåëè÷èâàåò ãèáêîñòü è ïåðåíîñèìîñòü êîäà.  íåêîòîðûõ ñëó÷àÿõ ãðàìîòíî ïîñòðîåíàÿ ñèñòåìà ïîäêëþ÷àåìûõ ôàéëîâ çíà÷èòåëüíî ýêîíîìèò ñèëû è âðåìÿ ðàçðàáîò÷èêà, ò.ê. ïîçâîëÿåò ïîâòîðíî èñïîëüçîâàòü ìíîãèå ôðàãìåíòû êîäà.