我基本上想要一种方法来编写一个只包含一个变量的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行代码放到一个函数中,因为它们包含了代码中前面设置的几十个变量,我真的不想创建一个函数,我需要传递几十个变量它的工作原理。
答案 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
}