2017-06-26 15 views
-1

$InboundTextBody ="1"です。コード実行時に$TypeOptions = goodは設定されませんが、もし私が$InboundTextBody ="one"のような単語を綴るなら、私はgreatを得ます。どのように私は、if文はあなたがそれを行うには鋳造演算子を使用することができ、文字列文の番号が文字列の場合は

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

入力は**既に**文字列です。数字を引用符で囲んで文字列として解析します。これは[** gettype($ InboundTextBody)**](http://php.net/manual/en/function.gettype.php)で確認できます。 –

+0

可変型文字列として '1'は、依然として 'One'ではなく、単一文字 '1'です。すべてのバリエーションを持つ配列を作成し、 'in_array'を使用することができます。 – chris85

+0

'$ InboundTextBody =" 1 "; if($ InboundTextBody === "1"){echo "ここで\ n"; } 'ここには"が出力されます。したがって、共有したコードはうまく動作します(一番上に '$ InboundTextBody =" 1 "'、次に大きなコードブロック)。問題を再現している*実行中のコード*を共有してください。 – smarx

答えて

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

ウィルはあなたが望むものを返します。

+0

'$ InboundTextBody =" 1 "' – smarx

-1

===を使用している場合、PHPは"1"を文字列として評価しています。 $InboundTextBody1(数値)の場合は、望みどおりに機能しません。 ===の代わりに==を使用してください(===は厳密な比較演算子であり、==はそうではありません)。

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

それとも確信している場合は、すべての可能な$InboundTextBodyは、あなたがif文の前に1行を追加する必要があり、文字列でなければならないこと:

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

質問の始まり: '$ InboundTextBody =" 1 "' – smarx

+0

@smarx実際には '$ InboundTextBody =" 1 "'だった場合、問題。 – newbie

+0

合意。 (私はその質問に関して多くのコメントをしました)だから、実際のコードが何であるかを見てみるのはどうですか? – smarx

関連する問題