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


How can i detect if php rename() has been successfully executed?

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

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

我该如何判断是真是假?如果我运行了确切的函数,并且它成功了,文件夹就会按预期移动,并且没有输出。如果失败,它只会打印出一条错误消息。

如何测试true还是false,以便判断重命名功能是否成功,而不会出现错误消息?

这是正确的方法吗?

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

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

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

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

检查返回值是一个简单的问题,按照您的建议执行(或者,如果方便,您可以将返回值保存到变量中)。

然而,最好不要更改全局错误级别,而是使用错误控制运算符@

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

在高级场景中,如果有可能采取措施进行更正,您可能还想了解错误情况是什么。为此,您需要rename将产生的警告中的错误消息。你可以使用与我在这里描述的类似的技术来实现这一点。