2014-10-12 4 views
0
$results = $mysqli->query("SELECT id, user_name, display_name FROM uc_users"); 

    while($row = $results->fetch_array()) { 

     // do something 

    } 

Я не могу понять, как PHP будет оценивать условие в цикле While.php while loop confusion

$results - объект. $row - массив. Что такое while($row = $results->fetch_array())? И когда он будет оценивать значение ИСТИНА, а когда - ЛОЖЬ?

+1

'$ row' не является массивом, но текущий элемент массива, который присваивается '$ results-> fetch_array()', после того, как '$ row' станет пустым, он будет оценивать значение' false' и, следовательно, выходит из цикла. – Prix

+0

@Prix ОК, спасибо, понял. –

ответ

0

Каждый раз, в то время как оценивает состояние, он делает следующее:

  • Собирают результат fetch_array
  • Поместите его в $ строке
  • На данный момент, он будет проверять содержимое $ строки и посмотреть, если это нуль не
  • Если это нуль, он будет выйти из цикла, если нет, то это будет продолжаться до бесконечности
+0

Удивительно, что если вы проверите Руководство PHP, нет ничего о том, как условие цикла While оценивает массивы. –

+0

Массив всегда «истинный» в состоянии, «false» возвращается, когда значение равно null или 0 или пустое, вообще говоря. –