Php Foreach语句在条件中仅对一种情况无效

Php Foreach语句在条件中仅对一种情况无效,php,foreach,Php,Foreach,我有一个允许1到多个文件上传的表单。我刚刚注意到,在提交多个文件时,会出现一个错误 为foreach()提供的参数无效。 对于这一行: foreach($indFile形式的文件名){ 文件已上载,但由于错误,它正在影响文件中的其他区域 只有在上载多个文件时才会显示此错误,这有什么错 foreach ($_FILES as $file) { foreach($file['name'] as $key => $value) { if (!empty($value))

我有一个允许1到多个文件上传的表单。我刚刚注意到,在提交多个文件时,会出现一个错误

为foreach()提供的参数无效。

对于这一行:

foreach($indFile形式的文件名){

文件已上载,但由于错误,它正在影响文件中的其他区域

只有在上载多个文件时才会显示此错误,这有什么错

foreach ($_FILES as $file) {
    foreach($file['name'] as $key => $value) {
        if (!empty($value)) { //empty string
            if($file['error'][$key] != 4) { //error code is not #4
                $fu = new fileUpload();
                $filename = $fu->upload();
                $out = (count($filename) > 1 ? 'Multiple files were' : 'A file was'). '  uploaded. You can download ' . (count($filename) > 1 ? 'them' : 'the file'). ' from:</ul>';
                foreach ($filename as $indFile) {
                    $out .= "<li><a href='uploads/{$indFile}'>{$indFile}</a></li>";
                }
                $out .= '</ul>';
                $template = str_replace("{filename}", $out, $template);

                //echo "name is NOT empty AND error is NOT 4";
            } else { //error code IS #4
                //echo "error code is 4";
            }
        } else {
            //echo "name is empty!";
            $template = str_replace("{filename}", '', $template);
        }
    }
}
clearstatcache();
foreach($\u文件为$file){
foreach($file['name']作为$key=>$value){
如果(!empty($value)){//空字符串
如果($file['error'][$key]!=4){//错误代码不是#4
$fu=新文件上传();
$filename=$fu->upload();
$out=(count($filename)>1?'was多个文件':'was一个文件')。已上载。您可以下载。'(count($filename)>1?'this':'the file')。'from:';
foreach($indFile形式的文件名){
$out.=“
  • ”; } $out.=''; $template=str_replace(“{filename},$out$template”); //echo“名称不为空且错误不为4”; }否则{//错误代码为#4 //echo“错误代码为4”; } }否则{ //echo“名称为空!”; $template=str_replace(“{filename}”,“”,$template); } } } clearstatcache();
    我建议您
    var\u export($filename)
    foreach
    循环之前,这应该会告诉您。您的问题在
    fileUpload
    类中。
    $fu->upload()
    返回了不可编辑的内容。@Siguza
    $filename
    在循环之前没有定义,因此在尝试
    var\u导出时抛出了一个未定义的错误
    @Paul,但是您有
    $filename=$fu->upload()
    就在那里。把它放在那条语句和
    foreach
    循环之间。@Siguza很抱歉,我完全错过了你的最后一条评论。我只是按照你的建议做了。这将输出…
    数组(0=>'overfold.PNG',1=>'afterglow.PNG',)0
    警告:为
    中的foreach()提供的参数无效