看起来很简单,我不知道为什么这不起作用。
我有一个带有几个下拉选项的表单,如果$ 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;
}
任何帮助,因为现在这让我很困惑。
由于
答案 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')
我想这只是写错了,所以我不会说出什么是差异:)