2012-02-20 37 views
2

php文档说如果成功,下面将返回true,如果失败,将返回false我如何检测php rename()是否已成功执行?

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

我该如何得到真假?如果我运行确切的功能并且它成功了,文件夹就会按照希望移动并且没有输出。如果失败,那么它只是输出一条错误消息。

如何测试truefalse,以便我可以判断重命名函数是否成功,而没有错误消息?

这是正确的方法吗?

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

这是正确的方法,是的。你也可以用'if(@rename(...')来抑制错误信息。 – 2012-02-20 17:53:48

+2

你是否完全理解退货是如何工作的? – animuson 2012-02-20 17:55:16

回答

5

只需将这样做是为了得到返回值:

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

然后你可以做任何你需要使用的$success值。

4

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

但是,它会更好,不改变整体误差水平和使用error control operator@代替:

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

在先进的情况下,您可能还需要了解什么错误条件是,如果有该采取措施纠正的可能性。要做到这一点,您需要输入rename会产生的警告错误消息。你可以使用类似的技术来描述here

相关问题