2016-04-05 14 views
0

私はstrlenが正しい機能であることを認識しています。なぜこれが起こるのか不思議です。なぜ空の文字列の数が1を返しますか?

PHPを私が実行する場合、どうすればecho count("");、値1を返しますか?

See example

私は1とは対照的に、それは、0を返すことが期待されていると思います。

+0

確かにあなたはstrlnを探していませんか? –

+0

[documentation](http://php.net/manual/en/function.count.php)を参照してください。 – j08691

+0

'count'は配列の要素数です。 'strlen'は文字列中の文字数です。 –

答えて

7

カウントはいくつあるかを数えています。ここには文字列があります。

くださいread the doc

array_or_countable内の要素の数を返します。パラメータが配列でないか、または実装されたCountableインターフェイスを持つオブジェクトでない場合は、1が返されます。ただし、array_or_countableがNULLの場合は0が返されます。 documentationとして

+0

Doh!どうしたらいいか分からない◉_◉ –

6

パラメータが配列か実装 Countableインターフェイスを持つオブジェクトではない場合、1が返される

言います。

3

おそらく、この結果として:

var_dump((array)""); 

...これを印刷:

array(1) { 
    [0]=> 
    string(0) "" 
} 

は汚い詳細についてはType Jugglingを参照してください。パラメータが配列か実装 Countableインターフェイスを持つオブジェクトではない場合、1が返される

official answer1は、単に文書の戻り値であることです。 1つの例外があります。 array_or_countableがNULLの場合は0が返されます。

関連する問題