几个if条件,检查是否有人为真

时间:2016-01-04 00:45:37

标签: php wordpress validation if-statement

我不确定如何将此代码与一些if / else语句组合在一起。

我检查一个字段是否为空 - 在这种情况下,我还检查该值是否与某个文本匹配。

此过程再重复两次,另外两个字段。

最后一件事是添加一个新字段 if ,其中if条件中没有匹配项。 我需要以某种方式重写它,我没有弄明白。我以为我可以将变量设置为" true"如果有匹配。但我猜我打破了一些范围规则。所以我的" $ alreadyexists"变量是完全错误的。

我该怎么做呢?

$textcontent = "Unique text in a unique field";

$subfieldvalue1 = get_post_meta($page_id,$subfield1 );
$subfieldvalue2 = get_post_meta($page_id,$subfield2 );
$subfieldvalue8 = get_post_meta($page_id,$subfield8 );

$alreadyexists = false;

if(!empty($subfieldvalue1)){
    if($subfieldvalue1[0] === $textcontent){
            $alreadyexists = true;
    }
}
if(!empty($subfieldvalue2)){
    if($subfieldvalue2[0] === $textcontent){
        $alreadyexists = true;
    }
}
if(!empty($subfieldvalue8)){
    if($subfieldvalue8[0] === $textcontent){
        $alreadyexists = true;
    }
}
if($alreadyexists = false){
    //add new field with text content!
}

2 个答案:

答案 0 :(得分:1)

如果get_post_meta在非空时返回一个至少有一个索引的数组,那么您的代码应该可以正常工作。仅供参考,您命名为$alreadyexists的变量称为标志变量。您可以使用if else来优化代码(因此当一个条件求值为true时解析器将停止)并且您可以通过在if语句中使用{链接嵌套条件来增强可读性{1}}运算符。但是,虽然我们正在努力,但你最好还是编写一个适用于任意数量字段的函数(见下文)。

请注意,在您当前的代码中,如果所有值都存在,&&甚至会为false,只有当其中一个与$alreadyexists完全匹配时才会为真。

$textcontent

答案 1 :(得分:0)

我会创建一个单独的方法,接收“$ subfieldX”和$ page_id的列表作为输入。所以伪代码是:

boolean checkingMethod(list_of_entries, $page_id){
    for(all entries in list_of_entries) {
        $subfieldvalue = get_post_meta($page_id,$entry );
        if(!empty($subfieldvalue)){
            if($subfieldvalue[0] === $textcontent){
                return true;
            }
        }
    }
}

一旦你发现一个是真的,你知道没有什么可做的。我们的想法是为N个条目提供一段代码。