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

Форум PHP

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

 

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

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

тема: Что значит while (list ($key, $val) = each ($folders))?
 
 автор: chelovek   (01.02.2007 в 11:15)   письмо автору
 
 

Здравствуйте. Помогите, пожалуйста разобраться в следующем коде. Этот пример взят из мануала по пхп. А точнее, что делает этот код и для чего нужна строка while (list ($key, $val) = each ($folders))?


$mbox = imap_open ("{localhost:143}INBOX", "admin", "admin");
echo "<p><h1>Mailboxes</h1>\n";
$folders = imap_listmailbox ($mbox, "{localhost:143}INBOX", "*");
if ($folders == false) {
    echo "Call failed<br>\n";
} else {
    while (list ($key, $val) = each ($folders)) {
        echo $val."<br>\n";
    }
}
echo "<p><h1>Headers in INBOX</h1>\n";
$headers = imap_headers ($mbox);
if ($headers == false) {
    echo "Call failed<br>\n";
} else {
    while (list ($key,$val) = each ($headers)) {
        echo $val."<br>\n";
    }
}
imap_close($mbox);


При загрузке страницы у меня выводится следующее:

Mailboxes
Call failed
Headers in INBOX
U 1) 1-Feb-2007 xxx@example.com 123 (371 chars)
U 2) 1-Feb-2007 xxx@example.com 123 (373 chars)

xxx@example.com - у меня прописан в php.ini.

   
 
 автор: bronenos   (01.02.2007 в 11:39)   письмо автору
 
   для: chelovek   (01.02.2007 в 11:15)
 

Лично я бы
while (list($key, $val) = each ($smth))
заменил на
foreach ($smth as $val)

а вообще вроде как тут сканирование папок ящика идет

   
 
 автор: cheops   (01.02.2007 в 12:43)   письмо автору
 
   для: chelovek   (01.02.2007 в 11:15)
 

>чего нужна строка while (list ($key, $val) = each ($folders))?
Это по сути эмуляция цикла foreach.

   
 
 автор: chelovek   (01.02.2007 в 15:25)   письмо автору
 
   для: cheops   (01.02.2007 в 12:43)
 

Пасибо за объяснения...
Скажите еще, а почему у меня выводится сообщение "Call failed" и что должно выводиться вместо него, если все будет работать нормально?

   
 
 автор: cheops   (01.02.2007 в 19:21)   письмо автору
 
   для: chelovek   (01.02.2007 в 15:25)
 

Как точно выглядит сообщение об ошибке?

   
 
 автор: chelovek   (02.02.2007 в 08:45)   письмо автору
 
   для: cheops   (01.02.2007 в 19:21)
 

Mailboxes
Call failed

Headers in INBOX
U 1) 1-Feb-2007 xxx@example.com 123 (371 chars)
U 2) 1-Feb-2007 xxx@example.com 123 (373 chars)





<Больше на странице ничего нет>

   
Rambler's Top100
вверх

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