PHP döngü için bir süre döngü ve bir arasındaki farklar?

5 Cevap php

Ben şu anda PHP üzerinde bir kitap okuyorum ve yazar döngü için bir süre loop ve a arasındaki fark döngüsü için çalışan kaç kez saymak olacaktır olduğunu kaydetti.

Yani bu almak:

<?php
    for ($i = 1; $i < 10; $i = $i + 1) {
        print "Number $i\n";
    }
?> 

Ancak bu aynı olmaz

<?php
    $i = 1;
        while ($i < 10) {
            $i = $i + 1;
            print "Number $i\n";
        }
?>

Ya da işaret vermedi diğer bazı farklar var? (Kenara böyle bir veritabanından satırları seçmek gibi, koşul true ne kadar kalacak emin olduğunuzda için while döngüsü kullanarak)

O tek fark ise Yani, ben sadece döngü için kullanmak değil ve bunun yerine while döngüsü kullanamıyorum?

5 Cevap

Yapabilir misin? Evet kesinlikle. Ama gerekir olup olmadığını tamamen farklı bir sorudur.

for döngü bu senaryoda daha okunabilir ve kesinlikle direktifleri döngü var hemen hemen her dilin içinde kullanılan göreceğiniz kuralıdır. Eğer while döngü kullanırsanız, insanlar why bir for döngü kullanmak vermedi merak gidiyoruz.

A için-döngü

for (INIT; CONDITIONS; UPDATE) {
    BODY
}

temelde bu gibi yapılandırılmış bir süre döngü aynıdır:

INIT
while (CONDITIONS) {
    BODY
    UPDATE
}

Eğer teknik birini veya diğerini kullanın olsa da, while for ve tersi daha iyi çalışır durumlar vardır.

Fonksiyonel olarak, bir for döngü a while döngü eşdeğerdir; diğer bir deyişle, her bir sonucu veya yan etkilere bir değişiklik ile diğer olarak yeniden yazılabilir. Ancak, her biri farklı anlamlara sahiptir. Bir durum tutarken A while döngü çalışır; şartlar değiştikçe olsa durum, statik. A for döngü bir dizi üzerinde çalışır. Fark sadece değişkenlerin seçimi gibi isimleri işlevsel olarak eşdeğer kodu üretmek için değiştirilebilir olsa bile programcılar için önemli olan, programlar programcılar için önemli değil ama. Bir döngü yapısı duruma bağlı olarak, diğer daha mantıklı olacaktır.

"For" expresses your intentions more clearly

İşlevsel olarak, hakkında iki örnek ile aynıdır. Ama onlar farklı niyetleri ifade eder.

  • while 'Ben bu durum ne kadar süreceğini biliyorum, ama sürece yaptığı gibi, bu şeyi yapmayın' anlamına gelir.
  • for 'Ben yürütmek için tekrar belirli bir sayıda' anlamına gelir.

Eğer diğer demek zaman birini kullanabilirsiniz, ancak bu kodu okumak zordur.

Some other reasons why for is preferable here

  • Bu daha kısa olduğunu ve bir yerde döngü hakkında tüm bilgileri koyar
  • Bu döngü için $i, yerel bir değişken yapar

Don't forget foreach

Şahsen, ben PHP en sık kullandığınız döngü foreach. Kendinizi bu gibi şeyler yapıyor bulursanız:

for ($i=0; $i < count($some_array); $i++){
  echo $some_array[$i];
}

... Sonra bu deneyin:

foreach ($some_array as $item){
   echo $item;
}

Daha hızlı, daha kolay okunur yazın.

Bu tat, kişisel tercih ve okunabilirlik meselesi. Bazen bir while döngü mantıklı daha iyi çalışır. Bazı durumlarda, bir for.

Ben bir değişken başlatıcısı gerekmez eğer benim kişisel kural, o zaman ben bir while kullanın.

Ancak a foreach döngü kendi şekilde yararlıdır.

Artı, fonksiyonların içinde tüm değişkenler geneldir PHP'nin kapsam belirleme, durumunda, bu değişken olursa olsun kullandığınız döngü kontrolü döngü sonra yaşamaya devam edecektir.