请注意,此类具有一个私有(因此未记录)属性,该属性保存文件指针。结合没有关闭文件句柄的方法这一事实,您将遇到无法使用 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 行
关闭文件对象
删除文件...
文件已删除!
---------------------------------------------------------------------