if语句中的单个变量

时间:2014-11-22 15:18:45

标签: php if-statement

我基本上想要一种方法来编写一个只包含一个变量的if语句,例如:

$var = "$foo == 'bar'";
if ($var) {
    // do code
}

或者更具描述性, 而不是:

$run_list = array("normal");
if (!empty("extras")) array_push($run_list, "extras");

foreach ($run_list as $iteration) {
    if ($iteration == "normal") {
        if ($array1 == $array2) {
            # do 125 lines of code here
        }

    // Will not always be True (may only iterate once)
    } elseif ($iteration == "extras") {
        if ($array1 != $array2) {
            # do exact same 125 lines of code here
        }
    }
}

我怎么能做类似的事情,但实际上有效:

$run_list = array("normal");
if (!empty("extras")) array_push($run_list, "extras");

foreach ($run_list as $iteration) {
    if ($iteration  = "normal") {
        $if_statement = "$array1 == $array2";
    } elseif ($iteration  = "extras") {
        $if_statement = "$array1 != $array2";
    }

    if ($if_statement) {
        # do 125 lines of code here
    }
}

我不想把125行代码放到一个函数中,因为它们包含了代码中前面设置的几十个变量,我真的不想创建一个函数,我需要传递几十个变量它的工作原理。

2 个答案:

答案 0 :(得分:2)

您可能希望在此处合并布尔表达式

$run_list = array("normal");
if (!empty("extras")) array_push($run_list, "extras");

foreach ($run_list as $iteration) {
    if (
        ($iteration == "normal" && array1 == $array2) 
        || ($iteration == "extras" && $array1 != $array2)
    ) {
        # do 125 lines of code here
    }
}

答案 1 :(得分:0)

您可以先创建一个布尔值,以便稍后在如下条件下进行测试:

 $conditional = $iteration === "normal";

然后测试有条件:

if($conditional){
    //execute code
}
相关问题