Контролни структури на PHP

Автор:Артемиев Сергей Игоревич
ICQ:438856621
електронна поща:[email protected]

Всички скриптове в PHP са набор от различни изрази, които се изпълняват последователно. Изразите могат да се комбинират в групи от изрази с помощта на т.нар. "операторни скоби" "". Групите изрази се използват основно във връзка с контролни конструкции на PHP език.

Контролните конструкции на езика са набори от служебни думи, които ви позволяват да промените хода на изпълнение на скрипта. Всички конструкции могат да бъдат грубо разделени на двоичен избор, множествен избор, повторение и включване.

Конструкциите на двоичен (двоен) изборпозволяват, в зависимост от условието, да се извърши или първото, или второто действие. В PHP тези конструкции са представени от ключовите думи if, else, elseif и endif.

Конструкцията if ви позволява да извършите някакво действие, ако условието е вярно. Този пример гласи „АКО условието е вярно, ТОГАВА изпълнете изрази“.

Конструкцията else се използва заедно с if и дефинира действие, когато условието е невярно. Следващият пример гласи „АКО условието е вярно, ТОГАВА изпълнете израз-1 ИНАЧЕ изпълнете израз-2“.

Конструкцията elseif е подобна на else, но ви позволява да създавате вериги от условия и действия. Примерът по-долу гласи "АКО условие-1 е вярно, ТОГАВА изпълнете израз-1 ИНАЧЕ, АКО условие-2 е вярно, ТОГАВА изпълнете израз-2 ИНАЧЕ. ".

Коя форма да използва - всеки разработчик решава сам, но повечето все пак се придържат към стандартната нотация (т.е. с нормални операторни скоби "")

Конструкцията с множествен изборе компактна нотациядълги вериги от условия като "if. elseif. elseif. else". В PHP тази конструкция се нарича switch и има доста проста нотация:

Тези. посочваме променлива или израз и след това посочваме възможните стойности и действия, съответстващи на тези стойности. Всички стойности, които не сме посочили изрично, ще попаднат в блока "по подразбиране". Забележителна характеристика на switch е възможността да се посочи списък с изрази за няколко опции едновременно. За да направите това, няколко блока "case" се записват последователно, например:

Превключването е много удобно, когато стойностите приемат конкретни фиксирани стойности. Например действията на шофьор на светофар могат да бъдат записани като:

КонструкциитеПовторение (цикъл)са предназначени за многократно изпълнение на едни и същи изрази. Тези конструкции включват while, do-while, for и foreach.

Докато ("wile") и do-while ("du-wile") са предназначени да организират цикли в случаите, когато броят на повторенията не е известен предварително или може да се промени по време на изпълнението на цикъла. Основата на тези конструкции е логически израз (условие) и цикълът се повтаря, докато условието стане вярно (равно на TRUE).

Формалното обозначение на структурите изглежда така:

Основната разлика между while и do-while е, че do-while винаги се изпълнява поне веднъж, дори ако условието първоначално е невярно. Например:

Примерът показва, че трябва внимателно да използвате do-while цикъла, в противен случай има голям риск от получаване на неочаквани и парадоксални резултати, като например в нашия пример. Неправилното използване на цикли много често води до появата на логически грешки, които са с порядък по-трудни за идентифициране и локализиране от всички останали.

Конструкциите while и do-while са много удобни при четене ред по ред.от файл или обработка на резултатите от заявки към бази данни, т.к не е известно предварително колко пъти ще е необходимо да се изпълни необходимия набор от изрази.

Следващата конструкция е за ("за"). Тази конструкция предполага, че броят на итерациите на цикъла е известен предварително или е изчислим преди началото на цикъла. Формално for се записва така:

Блокът "променлива" описва променливата на брояча и нейната първоначална стойност, "условието" определя броя на повторенията, а "операторът" определя действието върху променливата на брояча СЛЕД всяка итерация. Например, ако трябва да отпечатате един и същ ред 10 пъти, можете да използвате този код:

Тук сме посочили, че $i е променлива на брояча, започваме да броим от нула, след всяка итерация увеличаваме $i с единица, продължаваме итерациите, докато $i стане по-малко от 10. Горният код на цикъл е функционално еквивалентен на следния (написан без цикъл):

За for цикъл абсолютно не е необходимо да знаете броя на итерациите на етапа на скриптиране. Основното нещо е, че трябва да можем да изчислим тази сума и да я предадем на цикъла. Например:

Последната конструкция на цикъл е foreach. Това е най-простият и най-особен дизайн от разглежданите. Написано е така:

Тук "array" е променливата на масива, създадена по-рано, а "element_format" е официалното описание на един елемент от масива. Нека да разгледаме примери:

Цикълът foreach преминава през всички елементи на масива, независимо от техния брой. Недостатъкът на този дизайн е невъзможността за модифициране на елементите на масива по време на итерация. Това се дължи на факта, че foreach създава копие на масива преди началото на цикъла, което се унищожава след края на цикъла. Следователно всички промени се губят, когато цикълът излезе. Този недостатък е коригиран в PHP версия 5 и по-нова чрез добавяне на препратка към елементаданни:

Има няколко ключови думи специално за контролиране на изпълнението на цикли и скриптове в PHP: прекъсване, продължаване и връщане.

break се използва вътре в циклите и служи за незабавно спиране на повторенията на цикъла. Контролът се прехвърля към следващия израз след цикъла. Например, можете да прекъснете цикъла, когато възникнат определени условия:

break е много полезно, когато търсите желания елемент от масива, т.к можете да спрете търсенето веднага след като намерите желания елемент и да не изгребвате очевидно празната останала част от масива.

Следващата ключова дума е продължи. Проектиран да премине незабавно към следващата итерация. Например, можете да трансформирате предишния пример така:

Такъв цикъл ще премине през всички елементи на масива и ще изпълни кода "echo. " само за тези елементи, където стойността е "Alexander". Тази конструкция на цикъл е полезна за случаите, когато трябва да се приложат изрази към няколко елемента от масива.

Последната група конструкции са конструкции на включване. Те са предназначени да включват в текста на скрипта всички данни и код, намиращи се в друг файл. Има общо четири опции: включване, включване_веднъж, изискване, изискване_веднъж.

Конструкциите с префикс "_once" се различават от другите по това, че гарантират, че файлът ще бъде включен само веднъж във всички включени файлове. Тези. ако имате 10 файла и във всеки трябва да включите файл с описание, например на клас, тогава, когато използвате обичайното изискване или включване, PHP ще даде грешка „предекларирането на клас не е разрешено“ още при втората срещана команда за включване. От друга страна, include_once или require_once ще проверят предварително предишни включвания и ако файлът вече е бил включен, той няма да бъде включен отново.

разликамежду включване и изискване се крие в поведението, когато няма файл за включване. Ако include или inclide_once не намери посочения файл, тогава на потребителя се издава предупреждение. Но require и require_once генерират грешка и спират по-нататъшното изпълнение на скрипта.

Форматът и на четирите дизайна е почти еднакъв. Имената на включените файлове могат да бъдат написани както в пълна, така и в съкратена форма.

Най-горе на страницата

Най-горе на страницата