PHP - 如果语句在foreach循环中无法正常工作

时间:2012-08-26 02:34:58

标签: php mysql if-statement foreach

嗨,我在这里有这段代码:

public function length($args) {
    if (isset($this->length)) {
        foreach ($this->length as $k => $v) {
            if (strlen($args[$k])>=$v[0] && strlen($args[$k])<$v[1]) {
                return true;
            } else {
                array_push($this->form_errors, $v[2]);
                return false;
            }
        }
    } else { 
        return true;
    }
}

我不确定为什么,但它没有按预期工作。 foreach循环只循环遍历$ args [$ k]中的一个,即使其中有2个。任何人都知道最新情况怎么样?我赶紧写这个问题所以如果我需要解释别的,请告诉我。

谢谢!

1 个答案:

答案 0 :(得分:9)

return子句两边的两个if()语句在循环的第一次迭代时终止函数。 strlen的东西是真的,你返回true,或者它们是假的,你返回false。无论如何,循环结束。

如果您只是想跳转到下一次迭代,那么请改用continue,这样就可以让foreach继续进行。