2011-07-03 4 views
0

私は最も簡単な方法は(!$var and $var!=0)だろうと思いますが、var名を繰り返さずにそれを行う方法はありますか?0やその他のものに対してfalseを返す関数がありますが、false、null、空のarray()で真ですか?

+0

なぜvar名を繰り返せないのですか? – user623879

+1

*他のものは何ですか? –

+0

通常は真の文字列、空でない配列、オブジェクトなどを与えるその他の変数。 – rsk82

答えて

1
function foo($var) 
{ 
    return ($var === false || $var === null || is_array($var)); 
} 

if(foo($your_var)){} 
+0

まあ、私は要素がない配列である空の配列だと思った。もちろん、私はどの言語にもその関数や任意の配列があるとは思っていませんが、空の場合と同じようにすべてを再実行する組み込み関数があると思っています。 – rsk82

+0

@ user393087:いいえ、独自の関数を簡単に作成して、これらの値を明示的にテストすることは簡単です。 –

0

あなたのコメントを読んだ後、私はこれがあなたが望むものだと思う:

function really_empty($var) { 
    return $var !== 0 && empty($var); 
} 
+0

@downvoter:説明してください。それ以外の場合、私は自分の答えを改善する方法を知らない。ありがとうございました! –

1

$var !== 0はあなたの要求を満たし、それは(偽ヌルや空の配列を含む他のすべてにゼロに偽と真を返します)。

+1

しかし、それは 'false'を返すべきです。空でない文字列。 OPは '空 'のように機能するが、' 0'は空に扱わない関数を探している。 '$ var!== 0'では不十分です。 –

関連する問題