PHP如果Statement编号为字符串

时间:2017-06-26 00:35:24

标签: php if-statement

$InboundTextBody ="1"。当代码运行时,它不会设置$TypeOptions = good但是如果我拼写单词$InboundTextBody ="one",那么我会得到great。如何让if语句将输入1识别为字符串

if ($InboundTextBody === "1") {
    $TypeOptions = "good";
}
elseif ($InboundTextBody === "One") {
    $TypeOptions = "great";
}
elseif ($InboundTextBody === "3") {
    $TypeOptions = "best";
}

3 个答案:

答案 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";
}