Это код, который у меня есть до сих пор, интересно, правильно ли оно?
$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;
для завершения, когда вам нужно. В этом случае цикл не заканчивается до тех пор, пока ручка не будет закрыта.