2016-07-24 11 views
0

変数が2つの条件のうちの1つを実行するかどうかを調べるif文を作成しようとしています。同じ変数の2つの条件を持つIFステートメント

私は何を評価しようとしていたことである:「変数が0よりも大きいか、変数が等しい場合、 『複数』、その値を印刷

は、ここで私が持っているものです。

$var="more than three"; 

if (($var == 'more than one') || ($var > '0')) { 
    echo "var is: " . $var; 
} 
// produces "var is more than three" 

$var=0; 

if (($var == 'more than one') || ($var > '0')) { 
    echo "var is: " . $var; 
} 
// produces "var is 0" 
どちらの場合も

私は、エコーを期待していないと思います。私は何をしないのですか?

+0

申し訳ありません申し訳ありませんが、コードに一致するように説明に「複数」があります。 – Mazinfriki

+0

実際にどのような出力が必要ですか? –

+0

「複数」と等しいと言ったとき文字通り「複数の文字列」またはそれ以上の文字列を意味しますか? – simonv

答えて

1

私はあなたが$ VARのための整数だけでなく、文字列型を扱っているので、あなたがここに型キャストを使用することをお勧めしたい。

これを試してみてください:

$var = "more than three"; 

if (((string)$var == 'more than one') || ((int)$var > 0)) { 
    echo "var is: " . $var; 
} 

$var = 0; 
if (((string)$var == 'more than one') || ((int)$var > 0)) { 
    echo "var is: " . $var; 
} 

あなたは、参照としてこれを使用することができます:PHP Typecasting

+0

あなたは正しいです、ありがとう!私はPHPが変数が宣言された型に基づいて型を比較す​​るだろうと考えていたので、テストでは整数と文字列としてすでに定義されているので、文字列として整数型または "hello"型として0を型変換しようとはしませんでした。 – Mazinfriki

1

uがこれを試すことができますか?

if (($var == 'more than one') || ($var > 0)) { 
    echo "var is: " . $var; 
} 
+0

$ var = 0のとき、このコードは機能しません。私はそれをテストしました。 –

+0

はい私もそれを試したが動作しません。 $ varが文字列の場合にのみ動作します。 – Mazinfriki

+0

奇妙なことは、もしあなたが2つの文を(型キャストなしで)分割した場合、それらの両方が機能するということです! 1つの文で2つの異なるタイプを使用すると、phpがうまく動作しないようです。 – Mazinfriki

関連する問題