Optimizimi i Kalimeve të Tepërta të Ciklit në PHP
Në kodin vijues një programues kontrollon
nëse në array ndodhet numri 3:
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
$exists = false;
foreach ($arr as $elem) {
if ($elem == 3) {
$exists = true;
}
}
var_dump($exists);
?>
Çfarë nuk shkon me zgjidhjen e tij? Në dukje
nuk kryhen operacione të tepërta në cikël. Problemi,
sidoqoftë, është se pasi është përcaktuar
që numri 3 ndodhet në array - cikli
vazhdon të kthehet deri në fund të array.
Më joracionale do të jetë nëse numri 3
gjendet diku në fillim të array, dhe vetë array
të jetë i gjatë, le të themi, 1000 elementë.
Do të rezultojnë një mijë përsëritje të panevojshme
të tepërta të ciklit! Jo optimale.
Le të optimizojmë kodin, duke e ndaluar ciklin në kohën e duhur:
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
$exists = false;
foreach ($arr as $elem) {
if ($elem == 3) {
$exists = true;
break;
}
}
var_dump($exists);
?>
Kodi vijues llogarit, sa
elementë të array duhen mbledhur,
që shuma të bëhet më e madhe se 10.
Kryeni optimizimin:
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
$sum = 0;
$i = 1;
foreach ($arr as $elem) {
$sum += $elem;
if ($sum <= 10) {
$i++;
}
}
echo $i;
?>
Kodi vijues shfaq numrat çift nga një interval i caktuar. Kryeni optimizimin:
<?php
for ($i = 0; $i <= 100; $i++) {
if ($i % 2 === 0) {
echo $i;
}
}
?>
Kodi vijues shfaq numrat
që pjesëtohen njëkohësisht me 2
dhe me 3. Kryeni optimizimin:
<?php
for ($i = 0; $i <= 100; $i++) {
if ($i % 2 === 0 and $i % 3 === 0) {
echo $i;
}
}
?>