|
|
|
| Народ, обьясните плз здесь цикл равен тру до какого момента??
<?php
$products=array('Автопокрышки'=>100,'Бутылки машинного масла'=>10,'Свечи зажигания'=>4);
while ($goods=each($products))
{
echo $goods['key'];
echo $goods['value']." ";
}
?> | |
|
|
|
|
|
|
|
для: Богданн
(19.04.2011 в 12:58)
| | До тех пор, пока функция each не вернет false, т.е. пока в массиве $products не закончатся элементы, которые функция each пробегает от первого до последнего. Дело в том, что оператор = всегда возвращает результат своего присвоения, если вы левому операнду присвоите число, он вернет число, если присвоите false, оператор = вернет false. Выполните следующий скрипт
<?php
$products=array('Автопокрышки'=>100,'Бутылки машинного масла'=>10,'Свечи зажигания'=>4);
echo (int)($goods = each($products))."<br>"; // 1
echo (int)($goods = each($products))."<br>"; // 1
echo (int)($goods = each($products))."<br>"; // 1
echo (int)($goods = each($products))."<br>"; // 0
echo (int)($goods = each($products))."<br>"; // 0
?>
| Для удобства мы приводим результат к целому числу (оператор if приводит результат к логическому - boolean, но он не очень удобен для просмотра, так как false отображается пустой строкой). Как видите, оператор = возвращает 1 (true) только первые три раза, потом элементы в массиве заканчиваются и его вызов возвращает 0 (false). | |
|
|
|