我正在使用SplFileInfo和SplFileObject在PHP中处理文件。但是当我尝试“重新打开”文件时,它会报错:
SplFileObject::__construct(filemame): failed to open stream: Permission denied
我想在重新打开文件之前应该关闭它,但是我不知道如何操作。 SplFile*
没有 close
函数?!
为了关闭文件,您应该将SplFileObject
设置为null
。
<?php
$fileHandler = new SplFileObject('file.name');
//now file.name is open
$fileHandler = null;
//file.name is closed.
$fileHandler2 = new SplFileObject('file.name');
//file.name is re-opened
?>
__destruct
中关闭吗? - Lucas Bustamanteunset
会产生相同的效果吗? - Tarik
权限被拒绝
的错误。很明显是权限问题。 - xdazzSplFileObject
设置为null
: http://www.php.net/manual/ru/class.splfileobject.php#113149 - u_mulderSplFileObject
的变量,您必须确保将它们全部设置为null
,以便销毁(和垃圾回收)对象。更多关于对象销毁的内容请参考http://www.stoimen.com/blog/2011/11/14/php-dont-call-the-destructor-explicitly/。 - Dimitry K