如果功能成功,则重复功能 - PHP

时间:2014-02-04 12:04:04

标签: php function

我有以下功能将文件上传到数据库表字段。

protected function _upload_file() {
  ...
} 

上传后,上传新文件会覆盖原始上传文件。

我想要的是在不覆盖文件的情况下建立新的上传。我看待它的方式,我将不得不创建一个新的函数,如;

function if_upload_file() {
   ...
}

如果该功能成功,则重复功能。

知道如何才能做到这一点吗?

2 个答案:

答案 0 :(得分:4)

如果文件成功上传,让函数返回true,只要它保持为真,你就会一次又一次地循环。像那样

$con = true;

while($con) {
    if($con) {
        $con = your_function()
    }   
}

//your function
function your_function() {
    //do your stuff here
    if($file_upload_successful) {
        return true;
    } else {
        return false;
    }
}

至少我认为这可能有用......甚至不确定。好吧,没风险没有乐趣。

答案 1 :(得分:2)

Y U NO WORK答案的替代方法是递归使用该函数。

E.g。如果你有一个要上传的文件数组..

function foo($array_of_files) {

    if(is_array($array_of_files) && count($array_of_files) > 0) {

        $file = array_shift($array_of_files);
        // ... Handle upload code.

        if(count($array_of_files) > 0) {

            foo($array_of_files);

        }

    }

}

然而,这确实构建了堆栈层,并且对于调试来说可能非常麻烦。

只要正确处理循环条件,使用while循环将是一种明智的策略。