Какво са управляващите структури? Това са условните оператори, циклите и блоковете. Управляващите структури са основата на езиците за програмиране. Те позволяват да се зададат параметри и след това, в зависимост от техните значения, да се изпълни едно или друго действие. Благодарение на това уеб сайтовете стават по-динамични. Например, до обяд поздравът към потребителите може да е “Добро утро!”, а след обяд- “Добър ден!”.
В РНР има два основни условни оператора: if и switch. Двете основни категории оператори са операторите за сравнение и логическите оператори. Те обикновено се използват в условните оператори. Циклите позволяват повтарянето на едни и същи действия няколко пъти. Те икономисват време, особено при работа с масиви. В РНР се поддържат два типа цикли: while (и неговия еквивалент do...while) и for.
Условен оператор if
инструкцията, която ще се изпълни, ако условието е истина (true);
}
- Отворете текстовия редактор и създайте файл с име if_construct_1.php.
- Въведете следния скрипт:
<!Doctype html> <html> <head> <title>Конструкцията if</title> <meta http-equiv="Content-Type" content="text/html"; charset="UTF-8"> </head> <body> <?php $my_name = "Edelw"; //Задава стойност на променливата if ($my_name == "Edelw") { //Проверка та условието //Инструкция, която се изпълнява, ако условието е TRUE echo "Вашето име е Edelw!<br />"; } echo "Добре дошли в началната страница!"; ?> </body> </html>
- Съхранете файла и тествайте в браузъра.

Какво прави скрипта?
- Задаваме стойност на променливата $my_name = "Edelw".
- С помощта на условният оператор if и оператора ==, проверяваме дали стойността на променливата $my_name съвпада с "Edelw".
- Стойността на променливата $my_name действително е "Edelw", така че условието е вярно и се изпълнява инструкцията да се изведе съобщението “Вашето име е Edelw!” .
Какво ще се случи, ако условието не е изпълнено?
Променете името на променливата $my_name= “noEdelw”. Съхранете файла и тествайте в браузъра. Резултатът ще е:

За да определим дали дадена променлива съществува, можем да използваме функцията isset ().
Конструкцията if … else
Понякога се налага да изпълните една инструкция, ако условието е изпълнено, и друга, ако не е. В тези случаи на помощ идва конструкцията else, която се явява един вид разширение на условния оператор if. Синтаксисът е следния:
инструкция, която се изпълнява, ако условието е TRUE;
} else {
инструкция, която се изпълнява, ако условието е FALSE;
}
Можем да преработим файла if_condition.php така:
- Отворете текстовия редактор.
- Създайте файл с име if_else.php.
- Въведете следния скрипт:
<!Doctype html> <html> <head> <title>Конструкцията if-else</title> <meta http-equiv="Content-Type" content="text/html"; charset="UTF-8"> </head> <body> <?php $my_name = "Edelw"; if ($my_name == "Edelw") { echo "Вашето име е Edelw!<br />"; echo "Добре дошли в началната страница!"; } else { echo "Добре дошли в началната страница!"; } ?> </body> </html>
- Тествайте в браузъра, когато на променливата $my_name е зададена стойност"Edelw" и когато зададената стойност е различна от "Edelw”.
Конструкцията if-elseif
elseif също е един вид разширение към конструкцията if. Работи точно както if, като добавя проверка на още едно условие и по този начин може блокът с инструкции да се разшири.
инструкция, която се изпълнява, ако условие 1 е TRUE;
} elseif (условие 2) {
инструкция, която се изпълнява, ако условие 2 е TRUE;
} else {
инструкция, която се изпълнява, ако условия 1 и 2 са FALSE;
- Създайте нов документ.
- Дайте му наименование if_elseif.php.
- Въведете слeдния скрипт:
<!Doctype html> <html> <head> <title>Конструкцията if-elseif</title> <meta http-equiv="Content-Type" content="text/html"; charset="UTF-8"> </head> <body> <?php ?> </body> </html>
Ще създадем скрипт, който ще извежда в екрана на браузъра различни приветствени съобщения, в зависимост от това в коя част от денонощието се отваря скрипта. Към кода по-горе добавяме последователно:
//Задава стойност на променливата $firstname $firstname = "Edelw"; //Извежда съобщение за часа, минутите и секундите //и дава информация дали е преди обяд (AM) //или след обяд (PM) echo "Часът е" . " " . date ("H:m:s") . " " . date("A") . "<br/><br/>"; //Проверява дали е въведено името if ($firstname == ""){ echo "Влезте в акаунта си, моля!"."\n"; } else{
Функцията date() извежда произволна конкретна информация за датата (ден от седмицата, месец и т.н.), изхождайки от получения параметър. В случая date("А") връща "AM", ако е преди обед и “РМ”, ако е след обяд.
if( date("H:m:s") < 12) { //Ако е сутрин, поздрава ще е “Добро утро" echo (" Добро утро,". " ".$firstname . "!" ); } }
Тук date(“H”) връща времевия промеждутък във формат АМ/РМ , поради което между обяд и 18:00, приветствието ще е “Добър ден!”.
elseif ((date("H:m:s") >= 12 ) and (date ("H") < 18 )) { //Ако е между 12:00 и 18:00, поздравът ще е "Добър ден" echo ("Добър ден,". " ". $firstname . "!") ; } else { //След 18 часа, поздрава ще е "Добър вечер" echo ("Добър вечер,". " ". $firstname . "!") ; }
Съдържанието на целия файл if_elseif.php:
<!Doctype html> <html> <head> <title>Конструкцията if- elseif</title> <meta http-equiv="Content-Type" content="text/html"; charset="UTF-8"> </head> <body> <?php //Задава стойност на променливата $firstname $firstname = "Edelw"; //Извежда съобщение за часа, минутите и секундите //и дава информация дали е преди обяд (AM) //или след обяд (PM) echo "Часът е" . " " . date ("H:m:s") . " " . date("A") . "<br/><br/>"; //Проверява дали е въведено името if ($firstname == ""){ echo "Влезте в акаунта си, моля!"."\n"; } else{ if( date("H:m:s") < 12) { //Ако е сутрин, поздрава ще е “Добро утро" echo (" Добро утро,". " ".$firstname . "!" ); } elseif ((date("H:m:s") >= 12 ) and (date ("H") < 18 )) { //Ако е между 12:00 и 18:00, поздравът ще е "Добър ден" echo ("Добър ден,". " ". $firstname . "!") ; } else { //След 18 часа, поздрава ще е "Добър вечер" echo ("Добър вечер,". " ". $firstname . "!") ; } } ?> </body> </html>
Съхранете файла и тествайте веднъж, ако е зададена стойност на променливата $firstname и втори път, ако не е.
Функцията date() е много полезна, но тя взема времето от сървъра, а не от мястото, където се намира потребителя, имайте го пред вид.


Условна конструкция switch
Ако ви се струва, че изразите ви if - elseif – else стават все по-сложни, е време да се запознаем с оператора switch. Той ще ни помогне да спестим време и да опростим програмирането. конструкцията switch проверява за съвпадение на стойността на променливата с някой от няколко предложени израза. При съвпадение се изпълнява следващия оператор.
Синтаксисът й е следния:
switch ($variable) { case "value 1": statement 1; break; case "value 2": statement 2; break; default: statement 3; break; }
Важно е да разберете как работи конструкцията switch. Започва последователно сравнение на стойностите на променливата с дадените варианти и когато се намери пълно съответствие, се изпълнява следващата след двуеточието инструкция, т.е. когато се срещне case (случай) със стойност, която съвпада със стойността на променливата $variable, РНР започва да изпълнява съответните инструкции. Инструкциите се изпълняват, докато не се достигне края на блока или докато не се срещне инструкция break в края на списъка с инструкции case. Специален е случаят default, който в същност е всичко, което го няма в другите случаи. Много е важно всеки случай да завършва с инструкцията break.
Да си представим, че искаме да отидем на екскурзия. Имаме избор (отделни случаи) на няколко дестинации: Египет, Азия, Африка, Северна Америка, Южна Америка, Австралия. Ние ще си изберем дестинацията, например Австралия. Тогава нашата променлива $variable ще е Австралия, а конструкцията switch ще има вида:
$variable = “Австралия”; switch ($variable) { case "Египет": echo “Приятно изкарване в Египет!”; break; case "Азия": echo “Приятно изкарване в Азия!”; break; case "Африка": echo “Приятно изкарване в Африка!”; break; case "Северна Америка": echo “Приятно изкарване в Северна Америка!”; break; case "Южна Америка": echo “Приятно изкарване в Южна Америка!”; break; case "Австралия": echo “Приятно изкарване в Австралия!”; break; default: echo “Е, ще отидете може би следващата година!”; break; }
- Създайте нов документ в текстовия редактор.
- Дайте му наименование switch.php.
- Въведете следния скрипт:
<!Doctype html> <html> <head> <title>Конструкцията switch</title> <meta http-equiv="Content-Type" content="text/html"; charset="UTF-8"> </head> <body> <?php $variable = "Австралия"; switch ($variable) { case "Египет": echo "Приятно изкарване в Египет". "!"; break; case "Азия": echo "Приятно изкарване в Азия" ."!"; break; case "Африка": echo "Приятно изкарване в Африка" . "!"; break; case "Северна Америка": echo "Приятно изкарване в Северна Америка" . "!"; break; case "Южна Америка": echo "Приятно изкарване в Южна Америка" . "!"; break; case "Австралия": echo "Приятно изкарване в Австралия" . "!"; break; default: echo "Е, ще отидете може би следващата година" . "!"; break; } ?> </body> </html>
- Съхранете файла.
- Тествайте в браузъра.
В браузъра ще видите:

|
Няма коментари:
Публикуване на коментар