Главная » PHP - FAQ » Условия и циклы в PHP
191 0  

Условия и циклы в PHP

Условия в PHP позволяют сравнивать переменные, а циклы выполнять похожую операцию много раз.

Очень часто используется тернарный оператор:

$str = $a > $b ? 'вывод исли $a больше $b' : 'вывод если $a меньше или равно $b';
echo $str;

*  в скобках после ? - если условие tru, в скобках после : - если false.


Самое простое условие: если в круглых скобках истина то выведет то что в фигурных, если ложь то пропустит и будет выполнять код дальше.

//Вывести - Ты подросток если переменная age меньше 15:

if($age < 15) echo "Ты подросток";

Немного усложняемся: если в круглых скобках истина то выведет первое условие, а если ложь то второе после else:

//выведет 20 - наибольшее из двух значений:

<?php
    $x = 10;
    $y = 20;

    if ($x >= $y) echo "$x";
    else echo "$y";

?>

am если первая и второя инструкция состоит из нескольких страниц то уже нужны фигурные скобки.

Можно использовать знак && чтобы искать значение переменной age между 13 и 19.

если в первых фигурных скобках ложь, проверяется второе условие на истину- если здесь правда - выводим вторые фигурные скобки.

<?php
    $age = 21;

    if ($age<=13) {echo "Child.";} 
    elseif ($age>13 && $age<19) {echo "Teenager";} 
    else {echo "Adult";}
?>

Цикл while

Цикл while выполняет блок кода пока указаное в скобках условие - ВЕРНОЕ!

what Если условие никогда не становится ложным, то выражение будет бесконечным!

$i = 1;
while ($i <= 10) {
    echo $i++;  
}
выведет: - 12345678910

С помощью циклов можно работать и со строками:

<?php
function printNameBySymbol($name)
{
    $i = 0;
    // Такая проверка будет выполняться до конца строки
    // включая последний символ. Его индекс `длина строки - 1`.
    while ($i < strlen($name)) {
        // Обращаемся к символу по индексу
        print_r("$name[$i]\n");
        $i = $i + 1;
    }
}
$name = 'Arya';
printNameBySymbol($name);
// => 'A'
// => 'r'
// => 'y'
// => 'a'

Условие в while можно сделать сразу двумя способами: $i < strlen($name) или $i <= strlen($name) - 1. Оба приведут к одному результату.

Цикл do while

Цикл do while выполняет блок коди минимум 1 раз, проверяет условие, и повторяет цикл пок условие верное.

what код всегда будет выполнен 1 раз!

<?php
$i = 0;
do {
    echo $i;
} while ($i > 0);
?>
// даже здесь цикл выполнится 1 раз.

Цикл for

Цикл for используется тогда, когда вы заранее знаете, сколько раз должен запуститься скрипт.

init: Инициализирует значение счетчика цикла

test: Вычисляется при каждой итерации цикла, продолжая выполнение, если условие верно, и останавливаясь, если условие ложно

increment: Увеличивает значение счетчика цикл

for (init; test; increment) {
   code to be executed;
}
//=========
<?php
    for ($a = 0; $a < 6; $a++) {
        echo "Value of a : ". $a . "<br />";
    }
?>

belay Цикл for в примере выше сначала устанавливает переменную $a равной 0, затем проверяет условие ($a < 6). Если условие верно, то запускается код. После этого происходит инкрементирование переменной $a ($a++).

Цикл foreach

Цикл foreach работает только с массивами, и используется для прохождения по каждой паре ключ/значение в массиве.

foreach (array as $value) {
  code to be executed;
}
// здесь скрипт циклично проходит по массиву. На каждой итерации значение текущего элемента присваивается к переменной $value, а указатель массива смещается на единицу, пока не достигнет последнего элемента массива.


foreach (array as $key => $value) {
   code to be executed;
}
// Здесь при каждой итерации будет дополнительно присваивать текущий ключ элемента к переменной $key.

<?php
    $names = array("John", "David", "Amy");
    foreach ($names as $name) {
        echo $name.'<br />';
    }
?>
// Выведет каждую позицию с новой строки
//John
//David
//Amy

Оператор switch:

 switch немедленно отправляется к соответствующему case, и прекращает оценивать все другие условия, которые потребуются в цепочке if-else.

<?php
    $today = 'Tue';

    switch ($today) {
        case "Mon":
            echo "Today is Monday.";
            break;
        case "Tue":
            echo "Today is Tuesday.";
            break;
        case "Wed":
            echo "Today is Wednesday.";
            break;
        case "Thu":
            echo "Today is Thursday.";
            break;
        case "Fri":
             echo "Today is Friday.";
             break;
        case "Sat":
             echo "Today is Saturday.";
             break;
        case "Sun":
             echo "Today is Sunday.";
             break;
        default:
             echo "Invalid day.";
    }
?>

Ключевое слово break, которое следует за каждым case, используется для предотвращения автоматического перехода в следующий сектор case. Если вы забудете указать выражение break;, то PHP автоматически продолжит выполняться через последующие выражения case, даже если они не соответствуют выражению.

Как вернуть switch из функции - смотреть

В чем разница между switch и elseif?

В операторе switch выражение вычисляется один раз и этот результат сравнивается с каждым оператором case. В выражении elseif, выражение вычисляется снова. Если ваше условие более сложное, чем простое сравнение и/или находится в цикле, конструкция switch работает быстрее. fellow Используем switch когда много условий!


Оператор break

Оператор break заканчивает текущий for, foreach, while, do-while или switch и продолжает выполнять программу со строки, расположенной сразу после цикла.

Оператор break во внешней части программы (т.е., не в управляющем цикле) остановит скрипт.

<?php
    $x=1;
    switch ($x) {
        case 1:
            echo "One";
        case 2:
            echo "Two";
        case 3:
            echo "Three";
        default:
            echo "No match";
    }
?>
//Выведет: OneTwoThreeNo match

* Если оператор break отсутствует, то код продолжает выполняться.

Оператор continue

При использовании внутри структуры цикла, оператор continue позволяет пропустить то,

что осталось от текущей итерации цикла и перейти к следующей. Затем выполнение продолжается с подсчета условия и происходит переход к началу следующей итерации.

Следующий пример пропускает четные числа в цикле for:

<?php
    for ($i=0; $i<10; $i++) {
        if ($i%2==0) {
            continue;
        }
        echo $i . ' ';
    }
?>
//Выведет: 1 3 5 7 9

fellow Вы можете использовать оператор continue со всеми цикличными структурами.


bully в 8 версии PHP появылось выражение - match:

<?php
$food = 'cake';
$return_value = match ($food) {
    'apple' => 'На столе лежит яблоко',
    'banana' => 'На столе лежит банан',
    'cake' => 'На столе стоит торт',
};
var_dump($return_value);
?>

//Результат выполнения данного примера:
//string(35) "На столе стоит торт"



ДОкуметация на офиц сайте - смотреть


Оставить свой комментарий:

Досвід у веброзробці:

2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
1979
2021