ოპტიმიზაცია ჩაშენებული ფუნქციების მეშვეობით 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));
?>

მორალი: ამოცანის ამოხსნამდე აუცილებლად შეამოწმეთ, არსებობს თუ არა მისი ამოსახსნელად 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;
?>