HTML, Excel, Word, SEOPHP êóðñ äëÿ ÷àéíèêîâ ⇒ Óïðàâëÿþùèå ñòðóêòóðû

PHP äëÿ "÷àéíèêîâ"

Èíñòðóìåíòû
Âûáèðàåì IDE
Âûáèðàåì Web-ñåðâåð
Âûáèðàåì ÑÓÁÄ
Ñòðóêòóðà ÿçûêà PHP
Ïåðâûé øàã
Ñèíòàêñèñ
Òèïû äàííûõ
Ïåðåìåííûå è êîíñòàíòû
Îïåðàòîðû
Âûðàæåíèÿ
Óïðàâëÿþùèå ñòðóêòóðû
Ôóíêöèè
Êëàññû
Èñêëþ÷åíèÿ
Îøèáêè
Ìàññèâû
Ãëîáàëüíûå ìàññèâû
Cookies
Ñåññèè
Çàãðóçêà ôàéëîâ
Ðàáîòà ñ ôàéëàìè
Ðàáîòà ñ ôàéëàìè íà äèñêå
Ðàáîòà ñ äàííûìè â ôàéëå
Ïðèìåð óïðàâëåíèÿ ôàéëàìè
Ðàáîòà ñ áàçàìè äàííûõ
Ïîäêëþ÷åíèå
Àíàëèç ðåçóëüòàòîâ
Âûïîëíåíèå çàïðîñîâ
Îòêëþ÷åíèå
Ïðèìåð: îòñëåæèâàíèå ïîëüçîâàòåëåé
Ðàáîòà â ñåòè
Îòïðàâêà ïî÷òû
Áåçîïàñíîñòü
HTTP-àóòåíòèôèêàöèÿ
Çàùèòà ëîãèíîì è ïàðîëåì
Àâòîìàòèçàöèÿ
Ðåãóëÿðíûå âûðàæåíèÿ â PHP
Èíòåãðàöèÿ
PHP è JavaScript

 

Óïðàâëÿþùèå ñòðóêòóðû

Àâòîð: Àðòåìüåâ Ñåðãåé Èãîðåâè÷
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 ñ îòíîñèòåëüíûìè ïóòÿìè ê ôàéëàì. Âî-ïåðâûõ, ýòî ãàðàíòèðóåò íàëè÷èå âñåõ òðåáóåìûõ ôàéëîâ, à âî-âòîðûõ - äåëàåò íåâîçìîæíûìè îøèáêè ïîâòîðíîãî îáúÿâëåíèÿ êëàññîâ è ïåðåìåííûõ. À â òðåòüèõ - óâåëè÷èâàåò ãèáêîñòü è ïåðåíîñèìîñòü êîäà.  íåêîòîðûõ ñëó÷àÿõ ãðàìîòíî ïîñòðîåíàÿ ñèñòåìà ïîäêëþ÷àåìûõ ôàéëîâ çíà÷èòåëüíî ýêîíîìèò ñèëû è âðåìÿ ðàçðàáîò÷èêà, ò.ê. ïîçâîëÿåò ïîâòîðíî èñïîëüçîâàòü ìíîãèå ôðàãìåíòû êîäà.



 íà÷àëî ñòðàíèöû



 íà÷àëî ñòðàíèöû