PHP работа с переменными - PullRequest
       21

PHP работа с переменными

0 голосов
/ 27 октября 2011

как вы увидите, я новичок

У меня есть следующий код:

while($file = readdir($dir)){
    if($file!="." && $file!=".."){
    $cont++;
        ...
        ...
     }
}

и затем я хочу работать с переменной $ file, но если я сделаю это:

if($file){
    echo"OK";
}else{
       echo"Error";
}

Я получаю сообщение об ошибке.

Как мне работать с файлом $ вне цикла while ??

Спасибо

Ответы [ 3 ]

3 голосов
/ 27 октября 2011

$ file будет логическим значением FALSE при выходе из цикла. Когда readdir достигает конца каталога и ему больше нечего читать, он возвращает FALSE, которая присваивается вашему значению $ file.

Таким образом, после выхода из цикла while () $ file ВСЕГДА будет иметь значение false. Если вы хотите сохранить определенное имя файла для использования вне цикла, вам придется присвоить его какой-то другой переменной внутри цикла:

while($file = readdir($dir)) {
   if ( ... ) { }
   $lastfile = $file;
}

...

При этом при выходе из цикла while () $ lastfile будет иметь имя файла последнего файла, возвращенного readdir.

1 голос
/ 27 октября 2011

$file существует только внутри в цикле while. Что довольно очевидно. Почему вы хотите использовать его вне цикла? В любом случае, в любом случае у вас будет LAST $file. Таким образом, можно было бы объявить переменную над циклом while, назначить ее внутри цикла и использовать после цикла.

$fix_file;

while($file = readdir($dir)){
    if($file!="." && $file!=".."){
        $cont++;
        $fix_file = $file;
        break;
     }
}

if ($fix_file)
     echo "OK";
else
     echo "Error";
0 голосов
/ 27 октября 2011

Что вы действительно хотите проверить на $ file - если он вообще имеет какое-либо значение? Вы можете проверить это с помощью isset () или empty () .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...