Использование цикла foreach в PHP. Операторы switch, case

Цикл foreach
Операторы switch, case



Первый вариант синтаксиса foreach

Второй вариант синтаксиса foreach

Операторы switch, case (php.net)



Конструкция foreach (php.net) - предоставляет простой способ перебора массивов. Цикл foreach специально сделан для для того, чтобы переберать элементы массива одного за другим. Не важно какие ключи у массива: числовые, строковые (нумерованные массивы или ассоциативные), не важно, идут-ли числовые ключи по порядку или с разрывами - для цикла foreach ни какой роли это не играет. Он просто берет массив и переберает один элемент за другим до самого конца массива. Это цикл специально создавался для массивов, то есть проводить с ним теже самые операции, что и с циклами while и for, не получиться и php выдаст ошибку при попытке использования с переменными других типов или неинициализированными переменными.

Существует два вида синтаксиса:


Первый цикл перебирает массив, задаваемый с помощью переменной $array. На каждой итерации значение текущего элемента присваивается переменной $value и внутренний указатель массива увеличивается на единицу:


foreach ($array as $value)
{
Тело цикла
}


Второй цикл дополнительно присвоит ключ текущего элемента переменной $key на каждой итерации:


foreach ($array as $key => $value)
{
Тело цикла
}




Первый вариант синтаксиса foreach




Пример:


<?php
$arr = [ 'Ivanov' , 'Petrov' , 'Sidorov' ];
$arr [5] = 'Pupkin' ; // добавит в массив $arr 'Pupkin' c ключем 5
$arr [] = 'Vaskin' ; // добавит в конец массива 'Vaskin' c ключем 6
print_r ($arr);

foreach ($arr as $item) {
echo $item . '<br>';
}
?>

print_r($arr) выведет:
Array ( [0] => Ivanov [1] => Petrov [2] => Sidorov [5] => Pupkin [6] => Vaskin )

echo $item выведет:
Ivanov
Petrov
Sidorov
Pupkin
Vaskin




- где $arr - название массива,

as - ключевое слово (как),

$item - временная переменная.

То есть, мы проходимся по массиву $arr, берем каждый его конкретный элемент как,

и далее мы указываем в какую временную переменную мы его поместим. На каждой итерации

цикла в переменную $item попадает каждый конкретный элемент массива.


Пример со строковыми ключами:


<?php
$names = [
'Ivan' => 'Ivanov' ,
'Petr' => 'Petrov' ,
'Sidor' => 'Sidorov' ,
];
foreach ($names as $name) {
echo $name . '<br>';
}
?>
выведет:
Ivanov
Petrov
Sidorov



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



Второй вариант синтаксиса foreach




Пример:


<?php
foreach ($names as $key => $name) {
echo "Name: $key, Surname: $name <br>";
}
?>
выведет:
Name: Ivan, Surname: Ivanov
Name: Petr, Surname: Petrov
Name: Sidor, Surname: Sidorov



- здесь на каждой итерации цикла в переменную $name, как и прежде, попадает значение каждого конкретного элемент массива, а в переменную $key попадет ключ.



Пример:


<?php
foreach ($arr as $k => $v) {
echo "Key: $k, Sname: $v <br>" ;
}
?>
выведет:
Key: 0, Sname: Ivanov
Key: 1, Sname: Petrov
Key: 2, Sname: Sidorov
Key: 5, Sname: Pupkin
Key: 6, Sname: Vaskin




Операторы switch, case




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

Работа оператора switch похожа на работу конструкции if - elseif - else. Он выполняет ту же функцию, но позволяет немного упростить код, сделать его более понятным.

Для наглядности сравним работу эти конструкций.


Пример работы конструкции if - elseif - else:


<?php
$var = 3;
if ( $var == 1 ){
echo 'Variable = 1';
} elseif ($var == 2){
echo 'Variable = 2' ;
} elseif ($var == 3){
echo 'Variable = 3' ;
} else {
echo 'Something else...' ;
}
// выведет: Variable = 3
?>



Пример работы оператора switch:


<?php
$var = 3;
switch ($var){
case 1:
echo 'Variable = 1';
break;
case 2:
echo 'Variable = 2';
break;
case 3:
echo 'Variable = 3';
break;
default:
echo 'Something else...';
}
// выведет: Variable = 3
?>



- где $var - переменная, которую мы будем проверять;

- внутри операторных скобок, с помощью оператора case (кейс), мы задаем значение с которым мы сравниваем нашу переменную $var;

- затем выполняется тот самый код, который должен быть выполнен в случае, если наше

условие выполняется (в нашем случае, если $var = 3);

- после этого используем оператор break - для того, чтобы не срабатывали последующие кейсы;

- в конце кода записываем оператор default (по умолчанию) - это аналог else.






Наверх Наверх