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
$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
$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.
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
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
$sum = 0;
foreach ($arr as $elem) {
$sum += $elem;
}
echo $sum;
?>
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
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
$res = 1;
foreach ($arr as $elem) {
$res *= $elem;
}
echo $res;
?>