0

我有一个函数,如果成功则将值返回到变量中,或者返回错误数组。请参阅下面的部分内容。

function uploadEmploymentDoc($var, $var2){

$ERROR = array();

if(empty($_FILES['file']['tmp_name'])){
$ERROR[] = "You must upload a file!";
}

//find the extensions
$doctypeq = mysql_query("SELECT * FROM `DocType` WHERE `DocMimeType` = '$fileType'");
$doctype = mysql_fetch_array($doctypeq);
$docnum = mysql_num_rows($doctypeq);
if($docnum == 0){
$ERROR[] = "Unsupported file type"; 
}

if(empty($ERROR)){
// run my code
return $var;
} else{
return $ERROR;
}

然后当我运行我的代码时

$result =  uploadEmploymentDoc(1, 2);

if($result !=array()){
// run code
} else {
   foreach($result as $er){
   echo $er."<br>";
   }
}

现在我的问题是这个。为什么我的函数在我上传不受支持的文档类型时运行我的代码并且没有向我显示错误。我是否正确定义了我的 foreach 循环?由于某种原因,我无法恢复我的错误。

4

2 回答 2

3

你应该这样写——

if(is_array($result)){
   foreach($result as $er){
    echo $er."<br>";
   }
} else {
  //your code for handling error
}

您可以获得更多信息:http ://us2.php.net/is_array

于 2013-11-06T13:53:37.577 回答
0

尝试使用

$result =  uploadEmploymentDoc(1, 2);
if(!is_array($result)){
    // run code
} else {
   foreach($result as $er){
       echo $er."<br>";
   }
}

可能会更好地通过引用错误数组的函数来添加参数。如果错误,则从函数返回“false”,如果没有发生错误,则返回值。

于 2013-11-06T13:55:40.800 回答