Зачем присваивать переменной результат readdir()?

Собственно, вопрос:
Почему обязательно присваивание переменной результата работы функции readdir() в условиях?
$d = opendir($path);
if( ($f = readdir($d)) !== false ) {
//code
}
closedir($d);


Почему не срабатывает корректно:

$d = opendir($path);
if( readdir($d) !== false ) {
//code
}
closedir($d);
  • Вопрос задан
  • 99 просмотров
Решения вопроса 1
@alexalexes
Функция readdir(), как правило, используется вместе с while.
За один цикл нужно только один раз вызвать readdir, чтобы можно было поработать с дескриптором элемента каталога, не перейдя на другой элемент, поэтому появится такая неуклюжесть :
while(true)
{
  $f = readdir($d);
  if($f === fasle)
  {  break; }
  // Сделать что-то с $f в противном случае.
}

А если писать присваивание в одну строчку, там же, где хотим выйти из цикла, то получается очень компактно.
Возможно, стиль кода по while плавно перешел в if.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
FanatPHP
@FanatPHP
Чебуратор тега РНР
А какой смысл НЕ присваивать переменной результат readdir()?
Какой смысл вызывать функцию, которая возвращает значение, но не использовать его?

Просто подумай над своим вопросоам и сотри его как бессмысленный.
Ответ написан
В переменную $f присваивается значение функции readdir (), и уже переменная $f сравнивается с флагом в инверсии.
Если переменная $f нигде больше не используется, то нет, не надо.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
26 апр. 2024, в 06:46
1000 руб./в час
26 апр. 2024, в 05:31
1000 руб./за проект