$InboundTextBody ="1"
。当代码运行时,它不会设置$TypeOptions = good
但是如果我拼写单词$InboundTextBody ="one"
,那么我会得到great
。如何让if语句将输入1
识别为字符串
if ($InboundTextBody === "1") {
$TypeOptions = "good";
}
elseif ($InboundTextBody === "One") {
$TypeOptions = "great";
}
elseif ($InboundTextBody === "3") {
$TypeOptions = "best";
}
答案 0 :(得分:0)
<?php
$InboundTextBody = "1";
if ($InboundTextBody === "1"){
$TypeOptions = "good";
}
elseif ($InboundTextBody === "One"){
$TypeOptions = "great";
}
elseif ($InboundTextBody === "3"){
$TypeOptions = "best";
}
echo $TypeOptions;
输出:
[Running] php "test.php"
good
除了驼峰外壳,您的代码没有任何问题。
答案 1 :(得分:-1)
您可以使用强制转换操作符来执行此操作。
将该代码放在条件之前:
$InboundTextBody = (string)$InboundTextBody;
然后:
if ($InboundTextBody === "1"){
$TypeOptions = "good";
}
elseif ($InboundTextBody === "One"){
$TypeOptions = "great";
}
elseif ($InboundTextBody === "3"){
$TypeOptions = "best";
}
将返回您想要的内容。
答案 2 :(得分:-1)
当您使用===
时,PHP会将您的"1"
评估为字符串。如果$InboundTextBody
等于1
(数字),那么它将无法正常工作。您可以尝试使用==
代替===
来使其正常工作(因为===
是严格的比较运算符,而==
则不是)。
它是如何工作的:
if ($InboundTextBody == "1"){
$TypeOptions = "good";
}
elseif ($InboundTextBody == "One"){
$TypeOptions = "great";
}
elseif ($InboundTextBody == "3"){
$TypeOptions = "best";
}
或者,如果您确定,每个可能的$InboundTextBody
都应该是字符串,那么您应该在if
语句之前再添加一行:
$InboundTextBody = strval($InboundTextBody);
if ($InboundTextBody === "1"){
$TypeOptions = "good";
}
elseif ($InboundTextBody === "One"){
$TypeOptions = "great";
}
elseif ($InboundTextBody === "3"){
$TypeOptions = "best";
}