Tema e sotme në serinë tonë të qasjeve më të mira të PHP: Sythet në PHP. Si të shkruani një cikël cilësor PHP? Cilat janë truket e ciklit të kodimit në PHP? Le ta zbulojmë së bashku.

Çfarë është PHP Loop?

Lapat PHP përdoren shpesh për të operuar në grupe të dhënash dhe për të përsëritur blloqe kodi. Sidoqoftë, përdorimi joefikas i sytheve mund të ndikojë ndjeshëm në performancën e skenarit. Në këtë artikull, ne do të ndajmë praktikat dhe shembujt më të mirë mbi përdorimin performues dhe efektiv të sytheve në PHP.

Shembuj të ciklit PHP

Nëse nuk jeni të njohur me sythe PHP, së pari: Mësime PHP Ju duhet të shqyrtoni shembujt që kemi përgatitur për ju rreth cikleve nga seria jonë.

Zgjidhni llojin e duhur të lakut

Është e nevojshme të zgjidhni një lak të përshtatshëm për operacionin që do të kryhet në gjuhën PHP. Cikli For ose Foreach nuk është i përshtatshëm për çdo operacion! Tani le ta kuptojmë këtë me shembuj të përdorimit të saktë dhe të pasaktë.

PHP For Loop

PHP for loop është zgjedhja e duhur për përsëritjen me numra.

Përdorimi i saktë: Ideale për situatat ku numri i përsëritjeve është i paracaktuar.

for ($i = 0; $i < 10; $i++) {
    echo "Number: " . $i . "<br>";
}

Keqpërdorim: Për të përsëritur mbi një grup ose pa një numër përsëritjeje for cikli i përdorimit.

for ($i = 0; $i < count($array); $i++) {
    // For döngüsü bunun için ideal bir çözüm değil. BUNU YAPMAYIN!
}

PHP Foreach Loop

PHP foreach Laku është ideal për përsëritjen mbi vargje.

Përdorimi i saktë: Përsëritet automatikisht mbi çdo element të grupit.

$colors = ["red", "green", "blue"];
foreach ($colors as $color) {
    echo "Color: " . $color . "<br>";
}

Keqpërdorim: foreach Kur përdorni një strukturë të dhënash pa vargje ose kur kërkohet përsëritje e bazuar në indeks.

foreach ($i = 0; $i < 10; $i++) {
    // Forach döngüsü bunun için ideal bir çözüm değil. BUNU YAPMAYIN!
}

PHP while Loop

PHP while loop në PHP në raste të caktuara for dhe foreach Mund të jetë më i përshtatshëm në varësi të cikleve. Detaji më i rëndësishëm janë skenarët në të cilët gjendja e vazhdimit të lakut mund të ndryshojë brenda ciklit.

Përdorimi i saktë: Ideale për situatat kur gjendja duhet të kontrollohet brenda lakut.

$i = 0;
while ($i < 10) {
    echo "Sayı: " . $i . "<br>";
    $i++;
}

Keqpërdorim: Rastet kur gjendja e lakut nuk ndryshon kurrë

$counter = 0;
while ($counter < 10) {
    echo "Sayı: " . $counter . "<br>";
    // Sonsuz döngü (infinite loop) oluşacak. BUNU YAPMAYIN!
}

Përdorimi i PHP Loops në mënyrë efektive dhe me performancë

Asnjëherë mos thirrni një funksion në një lak

Thirrja e përsëritur e të njëjtit funksion brenda qarkut mund të ndikojë negativisht në performancën, veçanërisht kur punoni me grupe të mëdha të dhënash. Asnjëherë mos i thirrni funksionet në sythe. Kjo do të bëjë që kodi juaj të nuhasë

Për të mësuar kuptimet dhe dallimet e kodit të nuhatjes dhe kodit të pastër kod i pastër Ju mund të lexoni artikullin tonë

Keqpërdorim

count() Thirrja funksionon si në një lak.

for ($i = 0; $i < count($array); $i++) {
    // yapılacak işlemler
}

Përdorimi i saktë

Thirrni funksionet jashtë qarkut për të shmangur rillogaritjet e panevojshme.

$array_len = count($array);
for ($i = 0; $i < $array_len; $i++) {
    // yapılacak işlemler
}

Kjo qasje count() Ai parandalon që funksioni të riekzekutohet në çdo përsëritje, duke e bërë ciklin më efikas.

Mos përdorni pyetje dhe operacione të rënda në sythe

Në PHP, veçanërisht kur punoni me grupe të mëdha të dhënash, përdorimi i pyetjeve dhe operacioneve që mund të shkaktojnë probleme të performancës në një qark shkakton probleme të mëdha të performancës dhe konsum të tepruar të burimeve.

Keqpërdorim

Në këtë shembull, pyetja e bazës së të dhënave përdoret në një lak foreach. Një pyetje e veçantë ekzekutohet për çdo përdorues në çdo përsëritje, duke shkaktuar probleme serioze të performancës.

foreach ($users as $user) {
    $userData = $database->query("SELECT * FROM user_data WHERE user_id = " . $user->id);
    // BUNU ASLA YAPMAYIN!
}

Përdorimi i saktë

Në këtë shembull, të gjitha të dhënat e nevojshme merren jashtë ciklit me një pyetje të optimizuar SQL dhe të dhënat e marra përpunohen brenda ciklit. Cikli funksionon vetëm në të dhënat e marra nga baza e të dhënave, duke minimizuar kështu numrin e pyetjeve të bëra në çdo përsëritje.

$userIds = array_map(function($user) { return $user->id; }, $users);
$userData = $database->query("SELECT * FROM user_data WHERE user_id IN (" . implode(',', $userIds) . ")");

foreach ($userData as $data) {
    // veritabanından alınan verileri işle
}

Sythe PHP

Performanca dhe përdorimi efektiv i sytheve PHP rrit efikasitetin e kodit, optimizon përdorimin e burimeve dhe parandalon problemet e mundshme të performancës. Zgjedhja e llojeve të duhura të ciklit, rritja e efikasitetit në sythe dhe kushtimi i vëmendjes ndaj menaxhimit të burimeve janë qasjet kryesore që do t'ju ndihmojnë të arrini rezultate më të mira kur përdorni sythe PHP. Duke aplikuar këto qasje, ju mund t'i bëni kodet tuaja më të shpejta, më të pastra dhe më të lexueshme.