PHP-də döngələr. Php-də while və do-while döngələrindən For while döngələrindən necə istifadə etmək olar

06.10.2023

Bu məqaləni yenicə öyrənməyə başlayanlar üçün yazıram PHP. Bu yazıda sizə hər növ haqqında məlumat verəcəyəm PHP-də döngələr, çünki bu məqalə mənim veb saytımda deyildi. Yalnız var idi, amma ümumi oxşarlığa baxmayaraq, yenə də eyni deyil. IN PHP var 4 növ dövrə.

  1. VAXTINDA
  2. DO-WHILE
  3. FOREACH

Gəlin onlara ardıcıllıqla baxaq və ən populyarlarından başlayaq. PHP-də döngə(və təkcə daxil deyil PHP) - Bu FOR döngəsi. Bu döngə üçün sintaksis aşağıdakı kimidir:

Üçün(İfadə_1; ​​İfadə_2; İfadə_3) (
operatorlar
}

İfadə_1 dərhal və qeyd-şərtsiz həyata keçirilir, İfadə_3 döngənin hər iterasiyasından sonra yerinə yetirilir. İfadə_2 döngənin davam etməli olub olmadığını yoxlamaq üçün bir yoxlamadır. Əgər ifadənin nəticəsi olarsa doğrudur, sonra döngənin növbəti iterasiyası başlayır və əgər yalan, sonra dövrə işləməyi dayandırır.

Növbəti döngə növüdür VAXTINDA. Bu, sintaksisi aşağıdakı kimi olan daha sadə bir döngə növüdür:

while(ifadə) (
operatorlar
}

sağol İfadə qayıdır doğrudur, döngə işləyəcək və görünən kimi yalan, işləməyi dayandırır.

DO-WHILE Döngüsüçox oxşardır VAXTINDA, lakin bir fərqlə. Çıxış şərti iterasiya yerinə yetirildikdən sonra yoxlanılır, əvvəl yox. Beləliklə, bu döngə həmişə ən azı yerinə yetiriləcəkdir 1 bir dəfə. Və beləliklə DO-WHILE döngə sintaksisi:

et(
operatorlar
)while(Vəziyyət);

Və nəhayət, dövrlərin sonuncu növüdür foreach, xidmət edir yalnız massivlər və obyektlər üzərində təkrarlamaq üçün. Massivin düymələri rəqəmlər olmadıqda lazımdır (eyni şəkildə asanlıqla təkrarlana bilər). ÜÇÜN) və sətirlər. FOREACH döngə sintaksisi sonrakı:

Foreach($array_və ya_object $açar => $dəyər) (
operatorlar
}

Və nəhayət, hər şeyi tətbiq edək Massivlər arasında dövr etmək üçün PHP-də 4 növ döngə:

$list = massiv(5, 2, 3, 10, 12, 10);
$massiv = massiv("a" => 1, "x" => 10, "m" => -5);
üçün ($i = 0; $i< count($list); $i++) {
echo $list[$i]."; ";
}
əks-səda "
";
$i = 0;
isə ($i< count($list)) {
echo $list[$i]."; ";
$i++;
}
əks-səda "
";
$i = 0;
etmək (
echo $list[$i]."; ";
$i++;
)while($i< count($list));
əks-səda "
";
foreach ($açar olaraq $massiv => $dəyər) (
echo "$key = $value;";
}
?>

Hər hansı bir proqramçı bütün bu döngələri əzbər bilməlidir, ona görə də bir şey aydın deyilsə, onu yenidən oxuyun və ya şərhlərdə sual verin, mən cavab verməyə çalışacağam.

Çox tez-tez skriptlər yazarkən eyni hərəkəti bir neçə dəfə yerinə yetirmək lazımdır. Dövrlər bunun üçündür. php-də döngələr, digər dillərdə olduğu kimi, bir neçə növə bölünür:

  1. For counter ilə döngə
  2. while, do-while şərti ilə dövrələyin
  3. Foreach massivlərini keçmək üçün döngə

Məsələn, onlayn mağaza yaradanda məhsulları ekranda nümayiş etdirməzdən əvvəl stok balansı 10-dan aşağı olan məhsulları silməliyik.Bunun üçün biz massivdən keçin mallarla və şərti operatordan istifadə edərək, anbarda olan malların sayını yoxlayırıq və anbarda dəyəri 10-dan az olan bütün malları massivdən çıxarırıq.

PHP-də loop üçün

For counter ilə döngə- müəyyən sayda dəfə yerinə yetirildi. Bir misala baxaq:

"; } ?>

Bu nümunədə döngə 11 dəfə yerinə yetiriləcək. 0-dan (dəyişən $i = 0-dan) 10-a ($i-dən bəri<= 10). Каждую итерацию $i будет увеличено на 1 ($i++). Чтобы было понятней, сделаем еще один пример:

"; } ?>

Döngə 5-dən 9-a qədər davam edəcək($i< 10 (в предыдущем примере было <= 10)).

Döngə də tərs qaydada icra edilə bilər:

5; $i--) ( əks-səda "İterasiya nömrəsi: $i
"; } ?>

Döngü 10-dan 5-ə qədər yerinə yetiriləcəkdir.

Döngü müəyyən bir addımla da icra edilə bilər, bir nümunəyə baxaq:

"; } ?>

Döngə 5 addımla 3 iterasiya (0, 5, 10) yerinə yetirəcək. Hər təkrarlamada dövrə sayğacı 5 artırılacaq.

PHP-də foreach döngəsi

foreach döngəsi- ən ümumi dövr. Demək olar ki, bütün skriptlərdə tələb olunur, xüsusən də PHP skripti verilənlər bazası ilə işləyirsə. Massivləri keçmək üçün istifadə olunur.

Məsələn, kiçik bir nümunəyə baxaq:

$ dəyər) ( "Açar: $ açar, Dəyər: $ dəyər
"; } ?>

Skripti işə saldıqda görəcəksiniz:

Açar: 0, Qiymət: qırmızı Açar: 1, Dəyər: mavi Açar: 2, Dəyər: yaşıl Açar: rəng, Qiymət: sarı Açar: test, Dəyər: design studio ox2.ru

PHP-də while döngüsü

while loopşərt yerinə yetirildiyi müddətcə dövrəni yerinə yetirmək üçün istifadə olunur. Şərt heç vaxt yerinə yetirilməzsə, döngə bir döngəyə keçəcəkdir.

Bir misala baxaq:

"; } ?>

Ekranda 1-dən 19-a qədər rəqəmləri görəcəyik

PHP-də do-while döngüsü:

Velosiped etmək zamanı- tam olaraq eyni işləyir while loop, yeganə fərq iterasiyadan sonra şərtin ödənilməsidir. Bir misal yazaq:

"; ) isə ($i< 20); //Выполняем цикл до те пор, пока $i < 20 ?>

Ekranda biz 1-dən 20-yə qədər rəqəmləri görəcəyik. Qeyd edək ki, əvvəlki misalda ilə while loop 1-dən 19-a qədər idi, çünki şərt döngə iterasiyasından əvvəl təmin edildi.

etmək üçün dövrü pozmaq mövcuddur fasilə funksiyası, icazə verir döngədən çıxmaq, döngənin sonuna qədər nə qədər iterasiya qalmasından asılı olmayaraq.

Bir iterasiyanı atlamaq və növbəti iterasiyaya keçmək üçün var funksiyasını davam etdirin.

Veb saytları yaratarkən, saytın yaradılması qiymətindən, funksionallıqdan və digər şeylərdən asılı olmayaraq, demək olar ki, həmişə dövrlərdən istifadə olunur. Buna görə də onları ciddi qəbul edin!

Çox tez-tez skriptlər yazarkən eyni hərəkəti bir neçə dəfə yerinə yetirmək lazımdır. Dövrlər bunun üçündür. PHP-də dövrələr, digər dillərdə olduğu kimi, bir neçə növə bölünür: Döngü üçün sayğac ilə bir müddət, do-while şərti Foreach massivlərini keçmək üçün dövrə

OX2 2014-10-02 2014-10-02

Bəzi hallarda istənilən nəticə əldə olunana qədər kodu icra etmək lazımdır. Bunun üçün PHP while, for və foreach dövrələrini təmin edir.

PHP-də while loop sintaksisi

Sintaksis dövrüisə:

PHP-də while dövrəsindən istifadə nümunəsi:

Yuxarıdakı php while döngüsü nümunəsində $i sayğac dəyişəni ilk olaraq 0-a işə salınır.

while dövrəsinin şərti $i-dir< 10 . Это означает, что мы проверяем, меньше ли переменная, чем 10.

Qıvrımlı mötərizələrə daxil edilmiş hər şey döngənin təlimatlarıdır (gövdəsidir). Şərt doğru olana qədər onlar təkrarlanır. Yuxarıdakı misalda, $i ekrana çap olunur və sonra sayğac dəyişəni 1 artırılır. Bu, dövrə şərtinin nəticədə uğursuz olması üçün vacibdir. Döngə şərti həmişə yerinə yetirilirsə, məsələn, $i sayğac dəyişənini artırmağı unutmusunuzsa, skript sonsuz dövrəyə daxil olacaq. Xoşbəxtlikdən, PHP bir müddət sonra skriptinizin icrasını dayandıracaq.

Siz həm döngə vəziyyətini, həm də döngə gövdəsini istədiyiniz qədər mürəkkəb edə bilərsiniz. Məsələn, php olarkən içəridə istifadə edin, istifadə edin php-ni serialda təkrarlamaq üçün istifadə edin ( massiv) və ya birdən çox sayğac dəyişənini təyin edin:

$dəq) ( əks-səda "count1: $count1; count2: $count2
"; $ counter1 += 2; // $counter1 = $counter1 + 2 üçün stenoqrafiya ifadəsi; $counter2 -= 3; // $count2 = $count2-3; ) ?>

Nümunədə iki dəyişən müəyyən edilir: $ counter 1 və $ counter 2 . Bir dəyişən 2 artır, digəri isə 3 azalır. while döngüsü hər iki şərt yerinə yetirildiyi müddətdə işləyir $ count 1< $ max и $ count 2 >$min.

Döngəyə fasilə və davam açar sözlərinin təsiri

Komandadan istifadə etməklə fasilə bilər while dövrəsinin icrasını dayandırın PHP. Deyək ki, biz konkret istifadəçi axtarırıq. Sonra bir müddət ərzində bütün istifadəçiləri keçə bilərsiniz. Əgər düzgün istifadəçi tapsaq, istifadəni dayandırırıq açar söz fasilə.

Break açar sözünün istifadəsinə sadə bir nümunə:

isə ($count< $max) { if ($count == 10) { echo "Останавливаемся на числе 10"; break; } echo "$count,"; $counter += $increment; // увеличивает $count на значение $increment } ?>

Bu kod 0-dan $max = 30-a qədər artan ardıcıllıqla ədədlər arasında təkrarlanır və $count dəyişəninə $artma dəyərini, başqa sözlə 2 rəqəmini əlavə edir. Lakin $count dəyişəni 10-a bərabərdirsə, aşağıdakılar olacaq. baş verir: while döngəsindən çıxmaq php.

Açar söz davam edir döngəni dayandırmır php-də isə tamamilə , ancaq döngənin qalan hissəsini atlayır. Aşağıdakı nümunə bunu göstərir:

isə ($count< $max) { $counter += $increment; // увеличивает $payer на $increment if ($count >= 10 && $hesab<= 15) { echo "Число между 10 и 15
"; davam et;)

echo "$count
"; } ?>

Bu dövrə 0-dan başlayır və sayğacı $max-a qədər artırır. $counter dəyişəni həmişə $increment dəyişəninin dəyəri ilə artırılır. Yəni 0, 2, 4 və s. dəyərləri alır.

Əgər $count dəyişəninin dəyəri 10 ilə 15 arasındadırsa, mətn və bəyanat ekrana çap olunacaq. davam et döngənin gövdəsindəki digər ifadələri atlayacaq. Nəticədə 10, 12 və 14 rəqəmlərinin çıxmadığını görürük.

PHP-də do-while döngüsü

Kiçik modifikasiya isə do - while dövrəsidir. Bu zaman loop şərti yalnız onun gövdəsi yerinə yetirildikdən sonra yoxlanılır. Bu, döngənin gövdəsinin ən azı bir dəfə yerinə yetiriləcəyini bildirir.

Do-while loop sintaksisi:

Tutaq ki, biz yaratmaq istəyirik təsadüfi nömrə, ya 0 ilə 10 arasında, ya da 20 ilə 30 arasında olmalıdır. Rand ( funksiyasının tərifinə görə $ min, $maks) arasında təsadüfi bir ədəd yarada bilərsiniz $min$maks:

10 && $təsadüfi< 20) { $random = rand (0, 30); }

echo "Bizim təsadüfi nömrəmiz: $random"; ?>

php döngəsindən istifadə etisə, siz $təsadüfi dəyişəni başlatmadan ifadənin dəyərini əldə edə bilərsiniz. Döngənin gövdəsi şərt sınaqdan keçirilməzdən əvvəl yerinə yetirilir. Onda yuxarıdakı nümunə belə görünəcək:

10 && $təsadüfi< 20);

echo "Bizim təsadüfi nömrəmiz: $random"; ?>

Yeni başlayanlar üçün do-while döngəsi bir az çaşdırıcı ola bilər. Əgər onun məqsədini tam başa düşmürsənsə, bu, problem deyil. Do-while döngələri praktikada nadir hallarda istifadə olunur.

for döngəsinin sintaksisi aşağıdakı kimidir:

Bu döngə üçün açar sözündən ibarətdir, ardınca içərisində üç ifadəni ehtiva edən mötərizələr, nöqtəli vergüllə ayrılır. Aşağıdakı icra əmrinə malikdir:

  1. Döngənin əvvəlində inisializasiya ifadəsi həmişə ən əvvəlində yalnız bir dəfə qiymətləndirilir (icra edilir);
  2. Aşağıdakı şərti ifadədir. Hər bir iterasiya başlamazdan əvvəl şərti ifadənin qiyməti (icra şərti) hesablanır, əgər o, TRUE kimi qiymətləndirirsə, o zaman dövrənin gövdəsi YANLIŞ olaraq qiymətləndirilirsə, dövr bitir; Əgər birinci sınaqda şərt yanlışdırsa, dövrənin gövdəsi bir dəfə də olsa yerinə yetirilməyəcək.
  3. Ən sonda, dövrənin gövdəsində hərəkətlər yerinə yetirildikdən sonra sonuncu ifadə (şərtdən sonrakı ifadə) işlənir. Bu halda, bu artan ifadədir - sayğac dəyişəninin dəyərini artırır.

for loopunun sadə nümunəsi:

Əslində, for loopu demək olar ki, universaldır, çünki o, ən çox imkan verir müxtəlif variantlar onun tətbiqi.

başlıq hissələri olmayan for loop

for döngəsinin başlığında ifadələrin hər biri əskik ola bilər.

İnsializasiyaya ehtiyac yoxdursa və ya başqa yerdə baş verirsə, başlatma ifadəsinə ehtiyac yoxdur. Əvvəlki nümunəni bir az yenidən yazaq:

Nəzərə alın ki, nöqtəli vergül tələb olunur, çünki o, çatışmayan ifadəni bildirir. Şərt ifadəsinin olmaması şərtə TRUE dəyərinin qoyulmasına bərabərdir.

Bu vəziyyətdə, döngə sonsuz işləyəcəkdir. Artan ifadə yoxdursa, o zaman döngənin gövdəsində olmalıdır, əks halda döngə sonsuz şəkildə yerinə yetiriləcəkdir.

Unutmayın ki, üç ifadədən hər hansı biri və ya hamısı buraxıla bilər, lakin həmişə nöqtəli vergül (;) istifadə edilməlidir.

For döngəsinin başında bir neçə ifadə

For döngəsinin başlığında nöqtəli vergüllə ayrılmış hər bir ifadə vergüllə ayrılmış çoxlu ifadələrdən ibarət ola bilər. Buna görə də istənilən mürəkkəblik ifadələrindən istifadə edilə bilər.

"; } ?>

Əgər icra şərti vergüllə ayrılmış bir neçə ifadədən istifadə edirsə, onda onların hamısı qiymətləndirilir, lakin nəticə sonuncudan götürülür.

İç-içə döngələr

Şərti ifadələr kimi, döngələr də yuvalana bilər. Bir səviyyəli yuva ilə sadə bir nümunə:

"; üçün ($j = 0; $j< 2; $j++) { echo "Вложенный цикл.
"; } } ?>

PHP foreach loopu belə istifadə edilə bilər:

foreach($dəyər kimi $array_name)( //icra ediləcək kod)

foreach($array_name kimi $açar =>$value)( // // icra edilməli olan kod)

Rəqəmsal massiv ilə foreach döngəsindən istifadə nümunəsi

Bu nümunədə beş elementdən ibarət massiv yaradacağıq ədədi dəyərlər. PHP foreach loopu daha sonra bu massiv vasitəsilə təkrarlamaq üçün istifadə olunacaq. Foreach döngəsinin içərisində massiv dəyərlərini çap etmək üçün echo istifadə etdik:

Demo və kodlara baxın

Massiv açarları və dəyərləri ilə nümunə

Bu nümunə PHP foreach döngəsindən istifadə etməyin başqa yolunu təsvir edir. Bunun üçün üç elementdən ibarət assosiativ massiv yaratdıq. Buraya işçilərin adları daxildir ( açarlar kimi) və əmək haqqının məbləği ( dəyərlər kimi):

Demo və kodlara baxın

Foreach döngəsində massiv elementinin dəyərinin dəyişdirilməsi nümunəsi

Siz həmçinin c PHP istifadə edərək array foreach massiv elementlərinin dəyərlərini dəyişə bilər. Bunun üçün "$"dan əvvəl "&" işarəsindən istifadə edin dəyər dəyişəni. Məsələn:

&$elementin_dəyəri

Dəyər dəyişdiriləcək. Daha aydın olmaq üçün aşağıdakı nümunəyə nəzər salın.

Bu nümunədə biz beş elementdən ibarət rəqəmsal massiv yaratdıq. Bundan sonra elementlərin dəyərlərini göstərmək üçün foreach döngəsindən istifadə etdik.

Sonra başqa bir foreach döngəsi yaratdıq, burada $value_of_element əvvəlinə "&" əlavə olunur. Buruq mötərizələrin içərisində massivin elementlərinə yeni dəyərlər təyin edirik.

Yeni dəyərlər təyin etməzdən əvvəl və sonra fərqi görmək üçün massiv print_r() funksiyasından istifadə etməklə göstərilir.

Demo və kodlara baxın

PHP foreach loopu nə üçün istifadə olunur?

PHP foreach döngəsi massivlə işləmək üçün istifadə olunur. Elementlərinin hər biri üzərində təkrarlanır.

Massivlərlə işləmək üçün for loopundan da istifadə edə bilərsiniz. Məsələn, massivin uzunluğunu almaq üçün uzunluq xassəsindən istifadə etmək və sonra onu maksimum operator kimi tətbiq etmək. Lakin foreach massivlərlə işləmək üçün nəzərdə tutulduğu üçün işi asanlaşdırır.

MySQL ilə işləyirsinizsə, bu dövr bunun üçün daha uyğundur. Məsələn, verilənlər bazası cədvəlindən bir neçə sətir seçib onları massivə ötürə bilərsiniz. Bundan sonra, foreach döngəsindən istifadə edərək, massivin bütün elementlərini təkrarlayın və bəzi hərəkətləri yerinə yetirin.

Qeyd edək ki, siz massiv və ya sadəcə obyekt ilə foreach döngəsindən istifadə edə bilərsiniz.

Foreach döngəsindən istifadə

PHP-də PHP foreach loopundan istifadə etməyin iki yolu var. Hər ikisi aşağıda təsvir edilmişdir.

  • Birinci metodun sintaksisi:

foreach($massiv_adı $dəyər kimi)( echo $dəyər)

Bu halda massivin adını, sonra isə $value dəyişənini göstərməlisiniz.

Hər bir iterasiya üçün cari elementin dəyəri $value dəyişəninə təyin edilir. İterasiya tamamlandıqdan sonra dəyişənə növbəti elementin qiyməti təyin edilir. Və s., massivin bütün elementləri təkrarlanana qədər.

  • İkinci metodun sintaksisi ( PHP foreach əsas dəyər kimi):

Bu üçün uyğundur assosiativ massivlər açar/dəyər cütlərindən istifadə edən .

Hər iterasiya zamanı cari elementin dəyəri $value_of_element dəyişəninə təyin ediləcək. Bundan əlavə, element açarı $key_of_element dəyişəninə təyin edilir.

Rəqəmsal massivlərlə işləyirsinizsə, element açarlarını tələb etməyən birinci üsuldan istifadə edə bilərsiniz.

Bu nəşr " məqaləsinin tərcüməsidir. PHP foreach loopundan istifadə etməyin 2 yolu", mehriban layihə komandası tərəfindən hazırlanmışdır