PHP如果/ Else语句不起作用。只需按照'IF'行

时间:2012-07-04 11:50:18

标签: php string if-statement

看起来很简单,我不知道为什么这不起作用。

我有一个带有几个下拉选项的表单,如果$ message_type等于other,则该消息仅由$ details的详细信息构成。

如果$ message_type是其他任何内容,它应该将消息串起来。

传递变量并检查它是否正好使用echo传递给页面的'Other',因此没有拼写错误。

目前,无论消息类型如何,它始终只是将消息创建为$ details,如果不等于'Other',则不会跟随'else'行。

    if ($message_type = 'Other'){$message = $details;
}
    else {$message = "Action to do: ".$message_type." On ".$user." Extra Details: ".$details;
}

任何帮助,因为现在这让我很困惑。

由于

4 个答案:

答案 0 :(得分:2)

if ($message_type == 'Other')
{
    $message = $details;
}
else
{
    $message = "Action to do: ".$message_type." On ".$user." Extra Details: ".$details;
}

$message_type = 'Other'总是如此

答案 1 :(得分:2)

你做错了什么已经被另一个答案解释了,但“为什么”会发生这种情况?这很简单:=是赋值运算符,与PHP中的任何其他运算符(以及许多(所有?)语言)一样,运算符具有retun值,在这种情况下是赋值的值。 PHP现在将其转换为布尔值,因此它是true

if ($message_type = 'Other'){ /* .. */}
if ('Other'){ /* .. */}
if (true){ /* .. */}

答案 2 :(得分:1)

你需要两个等号

if ($message_type == 'Other') {
-------------------^
    $message = $details;
} else {
     $message = "Action to do: ".$message_type." On ".$user." Extra Details: ".$details;
}

一个等号是赋值运算符,所以你说“$ message type等于'Other'”而不是“if $ message type等于'Other'”

答案 3 :(得分:1)

if ($message_type = 'Other'){$message = $details;
}
    else {$message = "Action to do: ".$message_type." On ".$user." Extra Details: ".$details;
}

你有if ($message_type = 'Other') 你应该有if ($mesage_type == 'Other')

我想这只是写错了,所以我不会说出什么是差异:)