5

この「異常な」動作が私が期待すべきものであるかどうか、誰かが私に説明できます。

私はいくつかのコードをデバッグしていて、これを得ました:

$data で結果を取得し、$data に情報があることを確認するためにこれを作成します。

そう:

if(!$data || empty($data) || count($data) == 0)

そして、ifに入るアウェイ。

だから私は見るためにいくつかの var_dump を行います。

var_dump(!$data , empty($data) , count($data));

これに行きます:

bool(true)
bool(true)
int(1)

data = 1 と !$data = true と empty($data) = true をどのように数えますか?

ばかげた質問ではないことを願っています。そうであれば申し訳ありません。

4

3 に答える 3

8

PHP ドキュメントからcount

var の要素数を返します。var が配列または実装された Countable インターフェイスを持つオブジェクトでない場合、1 が返されます。例外が 1 つあります。var が NULL の場合、0 が返されます。

ほとんどの$data場合、配列ではありません。var_dump で再確認してください

var_dump($data)
于 2013-05-02T20:30:19.843 に答える
6

Count var の要素数を返します。var が配列または実装された Countable インターフェイスを持つオブジェクトでない場合、1 が返されます。例外が 1 つあります。var が NULL の場合、0 が返されます。

PHP ドキュメントhttp://php.net/manual/en/function.count.phpを参照してください。

于 2013-05-02T20:30:51.827 に答える