За последние 24 часа нас посетили 35063 программиста и 1758 роботов. Сейчас ищут 822 программиста ...

Логическое выражение

Тема в разделе "PHP для новичков", создана пользователем kilogram, 27 апр 2012.

  1. kilogram

    kilogram Активный пользователь

    С нами с:
    19 мар 2012
    Сообщения:
    116
    Симпатии:
    0
    Код (PHP):
    1. <?php 
    2. function sos($f1,$f2){
    3. if(is_dir($f1) && !is_dir($f2)) return -1;
    4. if(!is_dir($f1) && is_dir($f2)) return 1;
    5. if($f1<$f2) return -1; elseif ($f1>$f2) return 1;
    6. else return 0;
    7. }
    8. $d = opendir('.');
    9. while(false !== ($e=readdir($d)) )
    10.    $files[$e] = filesize($e);
    11. uksort($files,"sos");  
    12. print_r($files); 
    13. ?> 
    НЕ понятно вот это место: while(false !== ($e=readdir($d)) )
    Что это за сравнение? Как расшифровывается строка?
     
  2. kilogram

    kilogram Активный пользователь

    С нами с:
    19 мар 2012
    Сообщения:
    116
    Симпатии:
    0
    Код (Text):
    1. while(false !== ($e=readdir($d)) )
    Если $e не равно типу бул, значению фолс. А зачем здесь проверять на тип?
    Какие элементы с какими проверяются?
     
  3. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Читаем доку
    php.net/manual/en/function.readdir.php

    может вернуть не фалс, но такое значение, которое без проверки типа может быть истолковано как фалс. Тот же ноль.
     
  4. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    файл с именем 0, 0 == false но 0 !== false.