我的代码出现问题。我正在尝试发表if
声明。例如:
// 1st statement
if( $day1 && $day2 && day3 == null){
echo " A"
}
// 2nd statement
elseif ($day4 && $day5 == null) {
echo "B"
}
// 3rd statement
elseif($day6 && day7 == null) {
echo "C"
}
else {
echo "E"
}
如果第一个语句为真,则输出为:A 因为如果第一个语句等于true,if语句将停止,我无法继续第二个语句结果。
我想要实现的是,如果第1个第2个和第3个为真,结果将是:
一个 乙 ç
对于其他条件,如果第一个和第三个为真,结果将为: 一个 ç
等等。
答案 0 :(得分:2)
要实现这一点,您需要将所有变量放入一个数组中,遍历它们构建一个返回的字符串。
例如
$arr = array("A" =>$test1, "B" =>$test2, "C" => $test3);
$mystring = "";
foreach ($arr as $key=>$value) {
if($value) {
if ($mystring != "")
$mystring += " "; // add spacer
$mystring + = $key;
}
}
echo $mystring;
答案 1 :(得分:0)
做同样的事情,但没有if..elseif
。仅使用if
条件。您将需要一个变量来检查是否应该执行最后的其他操作。为此,您可以将输出保存在变量中并检查它是否为空:
$msg = '';
//1st statement
if ($day1 && $day2 && day3 == null) {
$msg .= " A";
}
//2nd statement
if ($day4 && $day5 == null) {
$msg .= "B";
}
//3rd statement
if ($day6 && day7 == null) {
$msg .= "C";
}
if (!$msg) {
echo "E";
} else {
echo $msg;
}
答案 2 :(得分:0)
您不应将其他用于您的目的。 试试这个:
//1st statement
if( $day1&&$day2&&day3==null)
{echo " A"}
//2nd statement
if ($day4&&$day5==null)
{echo "B"}
//3rd statement
if($day6&&day7==null){echo "C"}
else {echo "E"}
否则每个下一个条件仅在前一个为假的情况下才有效