2012-02-20 38 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

相關問題