Аптымізацыя праз убудаваныя функцыі ў PHP

Хай нейкі праграміст правярае, ці ёсць у масіве лік 5:

php<?php
  $arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
  
  $exists = false;
  foreach ($arr as $elem) {
    if ($elem == 5) {
      $exists = true;
      break; // выйдзем з цыклу, каб не круціўся лішні раз
    }
  }
  
  var_dump($exists);
?>

Я сцвярджаю, што з гэтым кодам штосьці не так. Што ж не ў парадку, мы ж выходзім з цыклу пасля таго, як знайшлі лік 3? Справа ў тым, што ўбудаваныя ў PHP функцыі заўсёды працуюць на парадак хутчэй аналагічнага самапіснага кода.

У нашым выпадку існуе функцыя in_array, якая вырашае пастаўленую задачу, - і карыстацца трэба менавіта гэтай функцыяй:

php<?php
  $arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
  var_dump(in_array(3, $arr));
?>

Маral: перад рашэннем задачы абавязкова правярайце, ці няма для яе рашэння ўбудаванай функцыі PHP.

Задание 1

У наступным кодзе нейкі праграміст знаходзіць суму элементаў масіва. Аптымізуйце рашэнне гэтага праграміста.

Вось код:

php<?php
  $arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
  
  $sum = 0;
  foreach ($arr as $elem) {
    $sum += $elem;
  }
  echo $sum;
?>
Задание 2

У наступным кодзе нейкі праграміст знаходзіць здабытак элементаў масіва. Аптымізуйце рашэнне гэтага праграміста:

php<?php
  $arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
  
  $res = 1;
  foreach ($arr as $elem) {
    $res *= $elem;
  }
  echo $res;
?>