Уроки PHP — foreach

php-lesson-foreachОсобенностью сегодняшнего урока будет тот факт, что оператор foreach применяется только с массивами и объектами — собственно говоря для переборки массивов этот оператор и используется.

Другой особенностью данного оператора является необходимость использования временной переменной для значения, которое получается с помощью этого оператора из массива. Звучит несколько запутанно, но мы сейчас с вами попробуем во всем этом разобраться 😉

Итак, для начала рассмотрим код, предлагаемый Codecademy:

<html>
<head>
<title></title>
</head>
<body>
<p>
<?php
$sentence = array(«I’m «, «learning «, «PHP!»);

___ ($sentence as $word) ___
echo $word;
___
?>
</p>
</body>
</html>

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

<?php
  $numbers = array(1, 2, 3);

  foreach($numbers as $item) {
      echo $item;
  }
?>

За все время изучения PHP мы с вами немного запомнили основные команды и операторы, потому рассматривать код в данном случае особо не будем - и так понятно, что у нас имеется массив, состоящий из слов: "I'm ", "learning ", "PHP!". Перейдем лучше к foreach: его использование начинается с объявления PHP суровой необходимости работы с массивами: foreach ($sentence as $word), что в переводе на простой человеческий может звучать как: начинаем перебирать массив, и каждое значение из массива объявляем временной переменной. После чего мы просто выводим полученное значение: echo $word;
Код, представленный Codecademy, в окончательной форме будет иметь следующий вид: 

<html>
 <head>
 <title></title>
 </head>
 <body>
 <p>
 <?php
 $sentence = array("I'm ", "learning ", "PHP!");
 
 foreach ($sentence as $word) {
 echo $word;
 }
 ?>
 </p>
 </body>
</html>

Для большего развлечения я предлагаю создать код, который сгенерирует ряд случайных чисел, сформирует их них массив, который мы выведем на экран отдельными позициями. Надеюсь, что идея сработает - ведь я тоже только начинаю изучение PHP :) 

Начнем с генерации случайных числе - напомню, что эта операция происходит с помощью команды $a = mt_rand (1,5);, где (1;5) - верхние и нижние ограничения генерируемого числа. 

Итак, ниже представлен код, который работает по следующей схеме:
1. Генерируем переменную $a
2. Генерируем переменную $b
3. Формируем массив, который состоит из переменных $a и $b, а так же их суммы
4. С помощью оператора foreach выводим на экран значения ячеек
5. Радуемся
<!DOCTYPE html>
<html>
 <head>
 </head>
 <body>
 <p>
 <?php
 $a = mt_rand (1,10); //генерируем значение переменной а
 $b = mt_rand (11,15); // генерируем значение переменной в
 $test = array($a, $b, $a+$b); // создаем и заполняем массив
 foreach ($test as $number) { // перебираем массив, и выводим его значения
 echo $number."<br>"; //выводим значения поочередно, каждое - на новой строке (за это отвечает br)
 }
 ?>
 </p>
 </body>
</html>