PHP (değişken = mysql_fetch_array) ise - açıklama

5 Cevap php

Bu benim için oldukça garip yani ben C # ile çalışıyoruz:

    while($variable=mysql_fetch_assoc)

{   $X=$variable['A'];
    $Y=$variable['B'];  
}

If it is like an ordinary loop, then X,Y will be reset with every loop, right?

Ben nasıl çalıştığını PHP kılavuzunda bakmak mümkün olmamıştır. Her döngüde bu assoc.array sonraki elemana ilerler sanırım. Ama bu genellikle PHP ne denir? Ben sadece döngü koşulu '=' görmek için kullanılan değilim.

5 Cevap

PHP Atama atandı değerini döndüren bir ifadedir. Bir satır alındığı ise sonuç döngü devam sağlayacak olan, olmayan yanlış olacaktır.

mysql_fetch_assoc() (ve ilgili fonksiyonlar) avans $result 'iç gösterici denilen alır her zaman. Yani $variable yeni bir satır Array while durumu kontrol her zaman tahsis edilecektir. Son satır döndürdü sonra, mysql_fetch_assoc() Artık iç işaretçi peşin değil, bu yüzden onu aramak için sonraki girişimi false dönecektir. $variable sahte olduktan sonra, durum artık memnun olduğunu ve döngü çıkar.

PHP (Ayrıca JavaScript vd) olarak, bir durum olarak uzun sıfır, boş bir dize, NULL veya false ya değerlendirmek değil de geçerlidir. Bir boolean değere değerlendirmek zorunda değildir. Böyle bir döngü çalışır yüzden.

EDIT:

If it is like an ordinary loop, then X,Y will be reset with every loop, right?

Evet, getirilen her yeni satırdan yeni değerlerle yeniden atanmış olacak.

Belki de bu gibi koduna bakarak yararlı olacaktır:

while (($variable = mysql_fetch_assoc($result)) == true) {
  // loops until the fetch function returns false (no more rows)
  // $variable will have be an associative array containing the 'next' row from the recordset in $result
}

Bunu yaparken bir kestirme yolu:

$variable = mysql_fetch_assoc();
while ($variable) {
  // loop

  $variable = mysql_fetch_assoc();
}

Bu gibi bir şey anlamına gelir "Eğer, o süre içinde vücut bu işleve geçmesi değişkeni mysql_fetch_assoc() bir eleman yapabilirsiniz kadar.

Aksi bir eleman, FALSE bulabilirsiniz eğer bir dizi döndürür, böylece döngü çıkabilirsiniz.

Bu kod sadece kısa formun:

$variable = mysql_fetch_assoc($res);
while($variable != FALSE) {
  // do something
  $variable = mysql_fetch_assoc($res);
}