Вопрос

Одна вещь, которая всегда беспокоила меня, это то, что при проверке моих php-скриптов на наличие проблем я получаю предупреждение "bool-assign :Задание в состоянии", и я получаю их часто.например ,:

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

Есть ли другой способ получить несколько или все строки в объект или массив?Или в этом методе нет ничего плохого?

Это было полезно?

Решение

попробуйте сделать это вместо этого:

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

Я полагаю, что php выдает предупреждение из-за того, что $row = mysql_fetch_assoc($result) не возвращает логическое значение.

Другие советы

На самом деле, я считаю, что это предупреждение, потому что вы можете совершить ошибку.Обычно в условном выражении вы имеете в виду делать:

if (something == something_else)

Но легко совершить ошибку и уйти:

if (something = something_else)

Так что, скорее всего, это предупреждение вам.Если PHP вообще чем-то похож на C, вы можете решить свою проблему с помощью набора круглых скобок вокруг вашего утверждения, например:

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

Я считаю, что ответ Джереми немного неточен, потому что PHP свободно типизирован и обычно не утруждает себя такими различиями.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top