2012-02-20 19 views
2

php docsは、成功するとtrue、失敗した場合はfalseを返します。php rename()が正常に実行されたかどうかをどのように検出できますか?

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'; 
} 
+0

これは正しい方法です。はい。 'if(@rename(...'。 –

+2

あなたは返品の仕組みを完全に理解していませんか? – animuson

答えて

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を記述するのと同様のテクニックを使用することができます。

関連する問題