4

いつも私を悩ませていることの 1 つは、PHP スクリプトの問題をチェックしているときに、「bool-assign : Assignment in condition」という警告が頻繁に表示されることです。

例えば:

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

オブジェクトまたは配列に複数またはすべての行を取得する別の方法はありますか? それとも、この方法に問題はありませんか?

4

2 に答える 2

13

代わりにこれを試してください:

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

$row = mysql_fetch_assoc($result)ブール値を返さないため、PHPが警告していると思います。

于 2009-04-05T05:49:20.173 に答える
3

実際、間違いを犯している可能性があるため、警告だと思います。通常、条件付きでは、次のことを意味します。

if (something == something_else)

しかし、間違いを犯して行ってしまうのは簡単です。

if (something = something_else)

したがって、警告している可能性があります。PHP が C に似ている場合は、次のようにステートメントを括弧で囲んで問題を解決できます。

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

PHP は緩く型付けされており、一般にそのような区別を気にしないため、Jeremy の答えは少しずれていると思います。

于 2009-04-05T05:54:43.437 に答える