如何在下次操作之前确保文件句柄已关闭?

Moh*_*mad 3 php filehandle while-loop

这是我到目前为止的代码,我想知道它是否正确?

$handle = fopen($file, 'w') or die("can't open file");
$closed = fclose($handle);
while($closed){
    DOAWESOMETHINGS(); // btw I only want to have this run once for each handle
    $closed = false;
}
Run Code Online (Sandbox Code Playgroud)

非常感谢!

Cal*_*lum 11

您可以使用此语句检查句柄是否已关闭

if(!is_resource($handle)){
   //Handle closed
}else{
   //Handle still open
}
Run Code Online (Sandbox Code Playgroud)

因此,如果在运行下一个函数之前需要确保fclose有效,则可以使用此循环:

while(is_resource($handle)){
   //Handle still open
   fclose($handle);
}
do_awesome_things();
Run Code Online (Sandbox Code Playgroud)

注意:您还应该break;在需要时使用结束while循环.在这种情况下,直到手柄关闭,循环才会结束.