PHP-daki artykmaç aýlanyş geçmelerini optimizasiýa etmek
Aşakdaky kodda bir programmaçy
massiwde 3 sanynyň bardygyny barlap görýär:
<?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);
?>
Onyň çözgüdi näme üçin ýalňyş? Görünüşde
aýlanyşda hiç hili artykmaç amallar ýerine ýetirilmeýär.
Problema şonda, 3 sanynyň massiwde
bar ekenligi anyklanandan soň - aýlanyş
ýene-de massiwden çykançak dowam edýär.
Iň oňat däl boljak ýagdaý, 3 sanynyň
massiwiň başyna ýakyn ýerde tapylmagy, massiw bolsa
örnegiň, 1000 element uzynlygynda bolmagydyr.
Şonda bir müň peýdasyz artykmaç aýlanyş geçmesi boljak!
Optimallaýyş däl.
Kody, aýlanyşy wagtında durdurup, optimizasiýa edeliň:
<?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);
?>
Aşakdaky kod, jemi 10-dan uly bolýança
nak massiw elementini goşmalydygyny hasaplaýar.
Optimizasiýany ýerine ýetiriň:
<?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;
?>
Aşakdaky kod, berlen aralykdaky jut sanlary çap edýär. Optimizasiýany ýerine ýetiriň:
<?php
for ($i = 0; $i <= 100; $i++) {
if ($i % 2 === 0) {
echo $i;
}
}
?>
Aşakdaky kod, bir wagtda 2 we
3 sanyna bölünýän sanlary çap edýär.
Optimizasiýany ýerine ýetiriň:
<?php
for ($i = 0; $i <= 100; $i++) {
if ($i % 2 === 0 and $i % 3 === 0) {
echo $i;
}
}
?>