如果函数成功,则重复函数-PHP
我有以下功能将文件上载到数据库表字段如果函数成功,则重复函数-PHP,php,function,Php,Function,我有以下功能将文件上载到数据库表字段 protected function _upload_file() { ... } 上载后,上载新文件将覆盖原始上载文件 我想要的是在不覆盖文件的情况下建立一个新的上传。在我看来,我必须创建一个新函数,如 function if_upload_file() { ... } 如果该功能成功,则重复该功能 你知道我该怎么做吗?如果文件上传成功,让函数返回true,只要它保持true,你就可以一次又一次地循环。那样 $con = true; wh
protected function _upload_file() {
...
}
上载后,上载新文件将覆盖原始上载文件
我想要的是在不覆盖文件的情况下建立一个新的上传。在我看来,我必须创建一个新函数,如
function if_upload_file() {
...
}
如果该功能成功,则重复该功能
你知道我该怎么做吗?如果文件上传成功,让函数返回true,只要它保持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;
}
}
至少我认为这可能有用。。。甚至不确定。好吧,没有风险就没有乐趣。如果文件上传成功,让函数返回true,只要它保持为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;
}
}
至少我认为这可能有用。。。甚至不确定。嗯,没有风险就没有乐趣。一个替代
你不工作的方法是递归使用函数
例如,如果您有一系列文件要上传
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循环将是一种明智的策略。一种替代方法是递归地使用函数
例如,如果您有一系列文件要上传
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循环将是一种明智的策略。是否将文件存储在数据库中?你能发布一些代码吗?这些文件没有存储在数据库中。crud应用程序读取表并将数据路径的值存储在相应字段中,然后对其进行解释并链接到其默认的上载文件夹。主持人:据我所知,堆栈溢出是供开发人员和程序员查找其编程相关问题的答案。在我看来,我问了一个相关的问题,我得到了一个相关的答案。鉴于我得到了关于所提供信息量的问题的答案,我认为绝对没有理由将此问题标记为非主题。您是否将文件存储在db中?你能发布一些代码吗?这些文件没有存储在数据库中。crud应用程序读取表并将数据路径的值存储在相应字段中,然后对其进行解释并链接到其默认的上载文件夹。主持人:据我所知,堆栈溢出是供开发人员和程序员查找其编程相关问题的答案。在我看来,我问了一个相关的问题,我得到了一个相关的答案。鉴于我从提供的大量信息中得到了问题的答案,我认为绝对没有理由将这个问题标记为离题。“没有风险就没有乐趣”太棒了!我更喜欢这个用法而不是我的。如果返回真/假,并将重复项抽象到函数外部,则意味着函数本身的可重用性要高得多。此外,您还可以使用闭包来构建并使其功能更加强大。它看起来很棒。但我觉得我做错了什么<代码>致命错误:调用…
中未定义的函数multiple\u upload()是我如何命名您的函数的。注意:我将$con
放在受保护函数的上载文件()中,并将受保护函数的多个上载文件放在受保护函数的上载文件()之后。当他在循环中时,他不知道这个函数,所以我说你不能从那里调用protected
函数。如果不需要,最简单的解决方案是删除受保护的
。我不知道你的代码,所以我不能给你那么多建议。“没有风险就没有乐趣”太棒了!我更喜欢这个用法而不是我的。如果返回真/假,并将重复项抽象到函数外部,则意味着函数本身的可重用性要高得多。此外,您还可以使用闭包来构建并使其功能更加强大。它看起来很棒。但我觉得我做错了什么<代码>致命错误:调用…
中未定义的函数multiple\u upload()
是我如何命名您的函数的。注意:我将$con
放在受保护函数的上载文件()中,并将受保护函数的多个上载文件放在受保护函数的上载文件()之后。当他在循环中时,他不知道这个函数,所以我说你不能从那里调用protected
函数。如果不需要,最简单的解决方案是删除受保护的
。我不知道你的密码,所以我不能给你那么多建议。