在同一个foreach循环中中断并继续

时间:2013-01-21 13:48:04

标签: php

是否可能在同一个foreach循环中有两个条件,一个继续,一个断开。所以我想找到所有完整的输入字段并将它们设为$$key,但只创建第一个空输入字段$_POST['email']。我可以在同一个循环中执行此操作还是我需要2个循环? 这是一个例子,这不起作用,它会中断。

foreach( $_POST as $key=> $for ) {
    if ( $for!='') {
        $$key = $for;   continue;
    } else if ( $for=='') { 
        $$key = $_POST['email'];  break;
    }

2 个答案:

答案 0 :(得分:1)

是的,你显然可以。

foreach( $_POST as $key=> $for ) {
    if ( $for != '') {
        $$key = $for; 
    } else { 
        $$key = $_POST['email'];
        break;
    }
}

答案 1 :(得分:1)

你的示例代码没有多大意义:if ($for!=''),那么唯一可能的是$for=='',因此第二个if子句是多余的。此外,通过在$$key中设置结果,您需要做什么 - 可能有一个原因,但它没有显示在您发布的代码中。

是的,很有可能在循环中有多个break和continue构造。他们会正常工作。

然而,简单地实现代码会更有效:

$email=$_POST['email'];

(虽然这也消除了代码中的许多副作用和潜在漏洞)。