Optimalisatie via ingebouwde functies in PHP

Stel dat een programmeur controleert of er een getal 5 in een array zit:

php<?php
  $arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
  
  $exists = false;
  foreach ($arr as $elem) {
    if ($elem == 5) {
      $exists = true;
      break; // verlaten we de lus om extra iteraties te voorkomen
    }
  }
  
  var_dump($exists);
?>

Ik beweer dat er iets mis is met deze code. Wat is er dan mis, we breken toch uit de lus nadat we het getal 3 hebben gevonden? Het punt is, dat ingebouwde PHP-functies altijd een orde van grootte sneller werken dan vergelijkbare zelfgeschreven code.

In ons geval bestaat er een functie in_array, die de gestelde taak oplost - en we moeten precies deze functie gebruiken:

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

De moraal: controleer voordat je een taak oplost altijd of er geen ingebouwde PHP-functie is voor de oplossing ervan.

Задание 1

In de volgende code vindt een programmeur de som van de elementen van een array. Optimaliseer de oplossing van deze programmeur.

Hier is de code:

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

In de volgende code vindt een programmeur het product van de elementen van een array. Optimaliseer de oplossing van deze programmeur:

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