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