PHP'de Yerleşik Fonksiyonlarla Optimizasyon

Bir programcının, bir dizide 5 sayısının olup olmadığını kontrol ettiğini varsayalım:

php<?php
  $arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
  
  $exists = false;
  foreach ($arr as $elem) {
    if ($elem == 5) {
      $exists = true;
      break; // döngüden gereksiz yere dönmesin diye çıkıyoruz
    }
  }
  
  var_dump($exists);
?>

Bu kodla bir şeylerin yanlış olduğunu iddia ediyorum. Neyi yanlış yapıyoruz, 3 sayısını bulduktan sonra döngüden çıkmıyor muyuz? Sorun şu ki, PHP'nin yerleşik fonksiyonları, her zaman benzer kendin yazdığın koddan kat kat daha hızlı çalışır.

Bizim durumumuzda, verilen görevi çözen in_array fonksiyonu var - ve kullanmamız gereken kesinlikle bu fonksiyondur:

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

Çıkarılacak ders: Bir görevi çözmeden önce mutlaka PHP'nin içinde bunun için bir çözüm olup olmadığını kontrol edin.

Задание 1

Aşağıdaki kodda bir programcı, bir dizinin elemanlarının toplamını buluyor. Bu programcının çözümünü optimize edin.

Kod aşağıdaki gibi:

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

Aşağıdaki kodda bir programcı, bir dizinin elemanlarının çarpımını buluyor. Bu programcının çözümünü optimize edin:

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