微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript-如何在生成器函数中关闭php资源

当我使用迭代器之后,如何关闭资源.

例如-如果我有这样的生成方法

$fileHandler = fopen($filePath, 'r');

while ($line = fgetcsv($fileHandler)) {
    yield $line;
}

fclose($fileHandler);

如何确保将调用“ fclose”.

如果我调用生成器并且只从csv中获得前3行,则while循环将暂停,如果不调用一个值,则不会调用“ fclose”.

如何确保文件处理程序将被关闭.

解决方法:

尝试一下,抓住,最后阻止.最终将始终被执行.

$fileHandler = fopen($filePath, 'r');
try {    
    while ($line = fgetcsv($fileHandler)) {
        yield $line;
    }
} catch(Exception $e) {
   //Do something with error.
} finally {
   fclose($fileHandler); 
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐