19

なぜ<?= count(false) ?>戻るのか知っています1か?

4

4 に答える 4

26

指定された動作:

varが配列またはCountableインターフェースが実装されたオブジェクトでない場合、1が返されます。

http://php.net/manual/en/function.count.phpによると

于 2013-03-10T20:59:44.957 に答える
10

falseも値であり、count()が配列を取得せずに有効な変数を取得する場合は、が返されtrueます1

$result = count(null);
// $result == 0

$result = count(false);
// $result == 1
于 2013-03-10T20:59:33.630 に答える
3

あなたの心の中でこれを覚えておくための良い方法:

  • count(false)は基本的に次のものと同じです。
  • count( "one boolean")であるため、結果として"ONE"ブール値があります。
于 2016-04-06T08:40:21.730 に答える
2

count()PHPが、要素が配列であるかオブジェクトであるかを判断するために使用することを妨げているように見えます。is_array()これらにはこの( 、 )専用の関数があり、配列またはオブジェクトを決定するための条件を単純に使用してチェックしis_object()たくなる場合があります。代わりに、PHPは非オブジェクト、非配列を返します(これは真実です)。そのため、このメソッドをこのように単純に使用することはできません(空の配列/オブジェクトの有効で偽の結果であるため)。count()false10

これが、説明している状況で関数によって返される値の選択の背後にある理由である可能性があります。

于 2013-12-28T20:19:38.027 に答える