Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Использование функции each в цикле
 
 автор: Богданн   (19.04.2011 в 12:58)   письмо автору
 
 

Народ, обьясните плз здесь цикл равен тру до какого момента??

<?php
$products=array('Автопокрышки'=>100,'Бутылки машинного масла'=>10,'Свечи зажигания'=>4);

while ($goods=each($products))
{
echo $goods['key'];
echo $goods['value']." ";
}
?>

  Ответить  
 
 автор: cheops   (19.04.2011 в 13:09)   письмо автору
 
   для: Богданн   (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).

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования