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

jon*_*jon 3 php rename

php文档说true如果成功或false失败,将返回以下内容.

rename('test/test1/','test/test2/test1/');
Run Code Online (Sandbox Code Playgroud)

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

如何测试,如果true还是false这样,我可以告诉,如果重命名功能成功,没有错误消息?

这是正确的方法吗?

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

Bri*_*oll 7

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

$success = rename($oldValue, $newValue);
Run Code Online (Sandbox Code Playgroud)

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


Jon*_*Jon 5

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

但是,最好不要更改全局错误级别并使用错误控制操作符 @:

if(@rename('test/test1/','test/test1/test2/test1/')===true) { 
    // successfuly rename
}
else {
    // failed
} 
Run Code Online (Sandbox Code Playgroud)

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