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;
?>