请注意,此类具有一个私有(因此未记录)属性,该属性保存文件指针。结合这样一个事实,即没有方法可以关闭文件句柄,您就会遇到无法使用 unlink() 等删除文件的情况,因为 SplFileObject 仍然存在一个打开的句柄。
要解决此问题,请像这样删除 SplFileObject
---------------------------------------------------------------------
<?php
print "声明文件对象\n";
$file = new SplFileObject('example.txt');
print "尝试删除文件...\n";
unlink('example.txt');
print "关闭文件对象\n";
$file = null;
print "删除文件...\n";
unlink('example.txt');
print '文件已删除!';
?>
---------------------------------------------------------------------
这将输出
---------------------------------------------------------------------
声明文件对象
尝试删除文件...
警告:unlink(example.txt):权限被拒绝,位于 file.php 的第 6 行
关闭文件对象
删除文件...
文件已删除!
---------------------------------------------------------------------