Optimering deur ingeboude funksies in PHP

Laat 'n sekere programmeerder nagaan of die nommer 5 in die skikking is:

php<?php
  $arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
  
  $exists = false;
  foreach ($arr as $elem) {
    if ($elem == 5) {
      $exists = true;
      break; // sal uit die lus breek, sodat dit nie onnodig draai nie
    }
  }
  
  var_dump($exists);
?>

Ek beweer dat daar iets verkeerd is met hierdie kode. Wat is verkeerd, ons breek tog uit die lus nadat ons die nommer 3 gevind het? Die saak is, dat ingeboude PHP-funksies altyd 'n orde vinniger werk as soortgelyke selfgeskrewe kode.

In ons geval bestaan die funksie in_array wat die gestelde probleem oplos - en dit is presies hierdie funksie wat gebruik moet word:

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

Die moraal: voordat jy 'n probleem oplos, moet jy altyd 'n sekere programmateur nakyk of daar nie 'n ingeboude PHP-funksie is vir die oplossing daarvan nie.

Задание 1

In die volgende kode vind 'n sekere programmateur die som van die elemente van die skikking. Optimaliseer die oplossing van hierdie programmateur.

Hier is die kode:

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

In die volgende kode vind 'n sekere programmateur die produk van die elemente van die skikking. Optimaliseer die oplossing van hierdie programmateur:

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