如何检测php rename()是否已成功执行?

时间:2012-02-20 17:52:12

标签: php rename

php文档说如果成功则返回true,如果失败则返回false

rename('test/test1/','test/test2/test1/');

我如何得到真或假?如果我运行确切的函数并且它是成功的,那么文件夹会按照希望移动,并且没有输出。如果失败,则只打印出错误消息。

如何测试truefalse是否可以判断重命名功能是否成功,而不显示错误消息?

这是正确的方法吗?

error_reporting(0);
if(rename('test/test1/','test/test1/test2/test1/')===true){
   print 'true';
} else{
   print 'false';
}

2 个答案:

答案 0 :(得分:6)

您只需执行此操作即可获得返回值:

$success = rename($oldValue, $newValue);

然后,您可以使用$success的值执行任何操作。

答案 1 :(得分:5)

检查返回值是一个简单的问题,就像你建议的那样完成(或者如果方便的话你可以将返回值保存到变量中)。

但是,最好不要更改全局错误级别,而是使用error control operator @代替:

if(@rename('test/test1/','test/test1/test2/test1/')===true) { 
    // successfuly rename
}
else {
    // failed
} 

在高级方案中,如果有可能采取措施纠正错误,您可能还想了解错误情况。为此,您需要rename将产生的警告中的错误消息。您可以使用与我所描述的here类似的技术来实现这一目标。