你会看到我是个新手
我有以下代码:
while($file = readdir($dir)){
if($file!="." && $file!=".."){
$cont++;
...
...
}
}
接下来我想使用变量$file但是如果我这样做:
if($file){
echo"OK";
}else{
echo"Error";
}
我得到了他们的错误信息。
如何在while循环之外使用$文件??
谢谢
$file在循环退出时将是一个布尔值FALSE。当readdir到达目录末尾并且没有更多可读的内容时,它返回FALSE,该值被赋给您的$file值。
因此,在while()循环退出后,$file将始终为false。如果您想保留一个特定的文件名以供循环外使用,则必须将其赋值给循环内的其他变量:
while($file = readdir($dir)) {
if ( ... ) { }
$lastfile = $file;
}
...
这样,当while()循环退出时,$lastfile将具有readdir返回的最后一个文件的文件名。
$file
只存在于 while循环中。这是很明显的。为什么要在循环之外使用它?在这种情况下,你只需要最后一个$file
。因此,有可能在while循环上面声明一个变量,在循环内部赋值,然后在循环之后使用它。
$fix_file;
while($file = readdir($dir)){
if($file!="." && $file!=".."){
$cont++;
$fix_file = $file;
break;
}
}
if ($fix_file)
echo "OK";
else
echo "Error";
如果$file有任何值,您真正想测试的是什么?您可以使用isset()或empty()函数检查这一点。