2017-06-24 79 views
0
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有單詞Help。它會回顯幫助。如果$ InboundTextBody有單詞重置,它仍然回顯幫助。它從不回覆重置。 我需要或在發言以防萬一$ InboundTextBody文本有多達或小寫文字PHP如果聲明條件不起作用

+0

注意運營商的優先權! – arkascha

+1

讓我把一些括號給予你:'if(($ InboundTextBody ==='Help')OR('help')){' – Federkun

+2

'或'help'正被比較爲無。你需要另一個'$ InboundTextBody ==='。或者你可以做'in_array($ InboundTextBody,array('help','Help'))',或者只是將大小寫轉換爲全部小寫或標題大小寫。 – chris85

回答

2

IF正確的語法是

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

或者你可以將所有以小寫並做

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

您可以使用函數strtolower來避免檢查UPPER和LOWER情況。

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

順便說一句,正確IF形式是:

if($InboundTextBody === 'Help' OR $InboundTextBody === 'help') 
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或空值)。