2012-02-03 9 views
0

以下のコードでは、$ start_limitと$ end_limitがFALSEの場合、Aを実行する必要があります。代わりにBが発生しています。私は両方の変数がvar_dumpでFALSEであることをテストしました。問題が条件が偽であってもis_nullが機能しない場合

$ start_limitが0に設定されることがあり、0がTRUEとなる条件が必要なため、is_nullを使用しています。

両方の変数がFALSEのときにAを実行する方法については、非常に感謝しています。

答えて

0

私はis_nullの代わりに===を使いたいと思います。 Falseはnullではありませんが、0!== falseです。トリプル・イコール・チェックは、あなたが探している正確なマッチングのタイプです。

おそらく

if(false === $start_limit && !$end_limit) { 
// there are no limits, set the course for the heart of the sun! 
} 
else { 
    B 
} 
1

ただ、強制ツーブール値を使用しています。 !0および!falseは両方ともtrueと評価されます。

if (!$start_limit && !$end_limit) { 
    // A 
} else { 
    // B   
} 

http://ideone.com/aBbWJ

+0

それをやったこと、ありがとうございます!私はPHPのドキュメントを見た後でも、is_nullは機能しませんでしたか? – jsuissa

+0

'is_null'は引数が' null'の場合のみ 'true'を返します... –

関連する問題