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

Изразите if
Изразът if е крайъгълен камък на всички езици за програмиране. В PHP един израз if обикновено приема следната основна форма:
If (условие) {
// действия, които трябва да се извършат, ако условието е вярно.
}
След думата „if” има комплект скоби. Вътре в тези скоби се намира едно условие или множество от условия, които трябва да се проверят. Ако условието бъде оценено като вярно, ще бъде изпълнен кодът във фигурните скоби. Следният код ще даде верен резултат и ще изведе “I’m True!”.

<?php
$foo = 100;
$bar = 10;
If ($foo > $bar) {
echo “I’m True!”;
}


Това е достатъчно ясно. Но преди да споменем сложностите на израза if, трябва да знаете как PHP определя дали едно условие е вярно, или невярно.

PHP True of False

Следващият раздел ще ви покаже операторите, които обичайно се използват в изразите if. Те са напълно интуитивни. В предишния пример 100 е по-голямо от 10, така че условието ще бъде оценено като вярно. Дотук добре, но в PHP има и малко повече за тези проверки.
Думите TRUE (вярно) и FALSE (невярно) също носят очакваното значение.
if (TRUE) {
echo “Yup!”; // това ще бъде изведено
}
if (FALSE) {
echo “Nothning doing.”; // това няма да бъде изведено
}
Не сте ограничени с простите математически оператори или думите TRUE и FALSE, когато проверявате условие вярно или невярно.
В PHP „0” е еквивалентно на невярно. Както можете да се досетите, „1” е равно на вярно. Но не само „1” е вярно – всяка ненулева, непразна стойност се оценява като вярна. Това ви дава известна гъвкавост в проверките.
Когато работите със страници в Web, обикновено вършите някаква манипулация на текст. Често ще се нуждаете от проверка дали текстовият низ, с който работите, има определена структура. Например бихте могли да искате да проверите дали един низ съдържа определени символи. Бихте могли да използвате една от обикновените функционални изрази, но бихте могли също така да използвате и функцията strstr(). Функцията strstr() приема три аргумента, като първите два са низове, а третия приема булева стойност. Тя търси първата поява на низа от втория аргумент в първия аргумент. Тя връща низа от втория аргумент плюс всички символи, които следват този низ ако като трети аргумент е зададен false. Ако третия аргумент на функцията е true (работи над PHP 5.3.0) то тогава ще бъде върнати всички символи, които са преди низа, зададен като втори аргумент. В долния пример strstr() връща „text string”.
$str = “my little text string”;
Strstr($str, “text”);
Функцията примема “false” по подразбиране като трети аргумент.
Тъй като резултатът на тази функция не е празен и не е 0, той би могъл да се иползва в проверка. Следното условие ще бъде оценено като вярно и ще изведе “Yeah!”
$str = “my little text string”;
if ( strstr($str, “text”) ) {
echo “Yeah!”;
}
Но в долния пример низа няма да бъде намерен, така че функцията ще върне FALSE и нищо няма да бъде изведено.

$str = “my little text string”;
$new_str = strstr($str, “nothing”);
if ($new_str) {
echo “nothing to print”; // това няма да бъде изведено
}

Оператори за сравнение
В езика за програмиране PHP няма прекалено много оператори за сравнение.
•    == (два символа за равенство) – определя дали две количества са равни.
•    === (три символа за равенство) – определя дали две стойности са с еднаква стойност и еднакъв тип на променливата
•    != – определя дали стойностите са различни
•    > – определя дали стойността вляво от символа има по-голяма стойност от тази вдясно от символа
•    < – определя дали стойността вляво от символа има по-малка стойност от тази вдясно от символа
•    >= – определя дали стойността вляво е по-голяма или равна на тази вдясно от символа
•    <= – определя дали стойността вляво е по-малка или равна на тази вдясно от символа

Логически оператори

Освен операторите за сравнение в скриптовете си ще използвате и логически оператори.
•    and – проверява и двете условия. пример: if ($a == 0 and $b == 1)
•    §§ – същото като предишния ред, но има по висок приоритет. пример: if ($a == 0 && $b == 1)
•    or – определя дали поне едно от сравненията е вярно. пример: if ($a == 0 or $b == 1)
•    || – същото като предишния ред, но има по висок приоритет. пример if ($a == 0 || $b == 1)
•    xor – това е познато като „изключващо или”. Определя дали едно от двете условия е вярно, но не и двете. Ако и двете условия са верни, общата проверка ще бъде невярна. пример if ($a == 0 xor $b == 1)
•    ! – определя дали нещо не е така. В този пример условието ще бъде невярно, ако $a има стойност. if ( !empty($a) )

Изрази if … else

Ако сте наясно с предишните раздели, тук няма нищо, което да ви изненада. Частта else на израза if … else ви позволява да определите код, който ще се изпълнява, ако определено условие е невярно.

$a = 2;
If ($a == 1) {
echo “It’s equal”;
} else {
echo “It is not equal”;
}

Този код ще изведе „it is not equal”.
Изрази if … elseif
Често трябва да проверявате променлива по отношение на повече от едно множество условия. Например, може да имате една страница, която да вмъква, редактира или изтрива записи от база от данни. Би било съвсем типично да посочите коя част от скрипта искате да се изпълнява, като присвоявате различни стойности на бутона submit във формуляр в HTML. Когато формулярът бъде предаден, стойността на бутона submit може да бъде проверена чрез няколко израза elseif.
if ($submit == “edit”) {
// код за редкатиране на база от данни
} elseif ($submit == ”update”) {
// код за актуализиране на записи
} elseif ($submit == “delete”) {
// код за изтриване на записи
} else {
echo “Нямам идея какво искаш да направиш.”;
}

Съвет: „elseif” не е същото като “else if”. Ако имате интервал между думите, няма да получите грешка, но може да изпитате странно поведение от програмата.

Сходни статии:

  1. Основни структури на автоматизирани системи за управление на технологичните процеси автор: Гергана Андонова Иванова специалност: Компютърни интегрирани системи за управление Структурата на сложните динамични системи представя относително устойчивото подреждане на вътрешните пространствени връзки между елементите на системата, т.е. структурата е...

Информационен портал - Твоето инфо за страната, света, медийте, спорта...
Responses are currently closed, but you can trackback from your own site.

Comments are closed.

Subscribe to RSS Feed Follow me on Twitter!