Uyarı: durumda Atama

2 Cevap php

One thing that has always bugged me is that when checking my php scripts for problems I get the warning "bool-assign : Assignment in condition" and I get them a lot. e.g.:

$guests = array();
$sql = "SELECT * FROM `guestlist`";
$result = mysql_query($sql);
while($row = mysql_fetch_assoc($result))
    $guests[] = $row['name'];

Bir nesne ya da diziye birden veya tüm satırları almak için farklı bir yolu var mı? Ya da bu yöntem ile yanlış bir şey var mı?

2 Cevap

yerine bunu deneyin:

$guests = array();
$sql = "SELECT * FROM `guestlist`";
$result = mysql_query($sql);
while(($row = mysql_fetch_assoc($result)) !== false)
    $guests[] = $row['name'];

Ben php bir boolean dönen çünkü $ row = mysql_fetch_array ($ result) uyarısında inanıyorum.

Aslında, ben bir hata yapma olabilir çünkü uyarı inanıyorum. Normalde bir koşullu, sen yapmak demek:

if (something == something_else)

Ama bu bir hata yapmak ve gitmek kolaydır:

if (something = something_else)

Bu yüzden büyük olasılıkla sizi uyarıyor. PHP C gibi hiç bir şey ise, senin deyimi etrafında parantez bir dizi ile sorunu çözmek, gibi pek yapabilirsiniz:

while(($row = mysql_fetch_assoc($result)))

PHP gevşek yazılır ve genellikle bu tür ayrımlar ile rahatsız etmez, çünkü Jeremy'nin cevabı, biraz kapalı olduğuna inanıyorum.