PHP如果Statement条件不起作用

时间:2017-06-24 18:39:50

标签: php if-statement

if($InboundTextBody === 'Help' OR 'help'){
   echo 'help';
} 
elseif($InboundTextBody === 'Reset'){
      echo 'send reset message';
}
elseif($InboundTextBody === 'Start'){
       echo 'send start message';
}

if($InboundTextBody === 'Help' || 'help'){
   echo 'help';
} 

如果我的$ InboundTextBody有单词帮助。它将回应帮助。如果$ InboundTextBody有单词Reset,它仍然是echo help。它从不回复重置。 我需要或者在我的声明中,以防$ InboundTextBody文本包含案例或小写文本

3 个答案:

答案 0 :(得分:2)

IF的正确语法是

if($InboundTextBody === 'Help' OR $InboundTextBody === 'help'){

或者您可以将全部转换为小写并执行

if(strtolower($InboundTextBody) === 'help'){

答案 1 :(得分:1)

您可以使用函数strtolower来避免检查UPPER和LOWER情况。

if(strtolower($InboundTextBody) === 'help')

顺便说一句,正确的IF形式是:

if($InboundTextBody === 'Help' OR $InboundTextBody === 'help')

答案 2 :(得分:0)

一种方法是使用内置的不区分大小写的字符串比较函数strcasecmp。 (php.net doc here

if (strcasecmp($InboundTextBody, 'help') == 0) {
    echo 'help';
} elseif (strcasecmp($InBoundTextBody, 'reset') == 0) {
    echo 'reset';
}

请注意,strcasecmp的结果如果相同则为0

请注意,在您的解决方案中,if($InboundTextBody === 'Help' || 'help')不会检查$InboundTextBody是什么。它只会检查它是否为“帮助”,但在||之后,您的等效值为:if ('help'),它将始终返回true,因为'help'不是假的(例如,不是0或null)。