Как убедиться, что дескриптор файла был закрыт перед следующей операцией?

Это код, который у меня есть до сих пор, интересно, правильно ли оно?

$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; } 

Спасибо огромное!

Вы можете проверить, был ли дескриптор закрыт или не использовался этот оператор

 if(!is_resource($handle)){ //Handle closed }else{ //Handle still open } 

Поэтому, если вам нужно убедиться, что fclose работал до запуска следующей функции, вы можете использовать этот цикл:

 while(is_resource($handle)){ //Handle still open fclose($handle); } do_awesome_things(); в while(is_resource($handle)){ //Handle still open fclose($handle); } do_awesome_things(); 

Примечание. Вы также должны использовать break; для завершения, когда вам нужно. В этом случае цикл не заканчивается до тех пор, пока ручка не будет закрыта.