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