ოპტიმიზაცია ჩაშენებული ფუნქციების მეშვეობით PHP-ში
დაე, უცნობმა პროგრამისტმა შეამოწმოს, არის თუ არა
მასივში რიცხვი 5:
<?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
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
var_dump(in_array(3, $arr));
?>
მორალი: ამოცანის ამოხსნამდე აუცილებლად შეამოწმეთ, არსებობს თუ არა მისი ამოსახსნელად PHP-ის ჩაშენებული ფუნქცია.
შემდეგ კოდში უცნობი პროგრამისტი პოულობს მასივის ელემენტების ჯამს. ოპტიმიზაცია გაუკეთეთ ამ პროგრამისტის ამოხსნას.
აი კოდი:
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
$sum = 0;
foreach ($arr as $elem) {
$sum += $elem;
}
echo $sum;
?>
შემდეგ კოდში უცნობი პროგრამისტი პოულობს მასივის ელემენტების ნამრავლს. ოპტიმიზაცია გაუკეთეთ ამ პროგრამისტის ამოხსნას:
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
$res = 1;
foreach ($arr as $elem) {
$res *= $elem;
}
echo $res;
?>