使用foreach返回处理数组的成功或失败

时间:2011-02-28 06:22:26

标签: php function return-value

我有一个PHP函数,它有一个数组作为参数,我使用foreach来处理数组。我的问题是,如何通过使用函数完全完成true过程的条件返回falseforeach,而不会在其中一个步骤中发现任何失败foreach内的进程?

类似的东西:

function do_process($array_vars){
    foreach($array_vars as $array_var) {
        //do the process
    }

    return (foreach process success) ? true : false;
}

4 个答案:

答案 0 :(得分:4)

这取决于你所说的“彻底” 一旦出现问题,你就可以中止:

function foo($array) {
    foreach ($array as $foo) {
        if (/* something or other */) {
            return false;
        }
        ...
    }
    return true;
}

或者你可以继续完成阵列的其余部分,但要记住出了问题:

function foo($array) {
    $success = true;
    foreach ($array as $foo) {
        if (/* something or other */) {
            $success = false;
        }
        ...
    }
    return $success;
}

答案 1 :(得分:2)

您可以在任何时候从函数返回,包括在检测到失败时从foreach循环中返回:

function do_process($array_vars){
   foreach($array_vars as $array_var) {
     // do the process
     if (this step of the process failed)
       return false;
   }

   // The foreach loop must have completed successfully
   return true;
}

答案 2 :(得分:2)

我会这样做:

function do_process($array_vars){
    $success = true;
    foreach($array_vars as $array_var){
        if (some condition appeared){ $success = false; }
    }

    return $success;
}

答案 3 :(得分:-1)

你可以这样做。

function process($array_items) {

   foreach($array_items as $item) {
      //processing to array goes here......
      if($some_bottle_neck or $failure)
          return false;
      if($item == end($array_items))
          return true;
   }
}

希望这是您的解决方案。