来自if语句的多个输出

时间:2015-07-19 11:30:28

标签: php

我的代码出现问题。我正在尝试发表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个为真,结果将是:

一个 乙 ç

对于其他条件,如果第一个和第三个为真,结果将为: 一个 ç

等等。

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"}

否则每个下一个条件仅在前一个为假的情况下才有效

了解它:http://php.net/manual/en/control-structures.elseif.php