2016-04-05 16 views
0

Ich realisiere strlen ist die richtige Funktion zu verwenden, ich bin nur neugierig, warum dies passiert.Warum wird beim Zählen einer leeren Zeichenfolge 1 zurückgegeben?

Wie kommt es, wenn PHP in I echo count(""); tun, gibt es den Wert 1 zurück?

See example

Ich hätte erwartet, dass es 0 zurückzukehren, wie es zu 1 gegenüber.

+0

Sicher, du suchst nicht strln? –

+0

versuchen Sie das Lesen der [Dokumentation] (http://php.net/manual/en/function.count.php) – j08691

+0

'count' ist für die Anzahl der Elemente eines Arrays. "strlen" steht für die Anzahl der Zeichen in einer Zeichenfolge. –

Antwort

7

count zählt, wie viele Elemente es gibt. Hier hast du eine Zeichenfolge, also ein Element.

Bitte read the doc:

Gibt die Anzahl der Elemente in array_or_countable. Wenn der Parameter kein Array oder kein Objekt mit implementierter Countable-Schnittstelle ist, wird 1 zurückgegeben. Es gibt eine Ausnahme: Wenn array_or_countable NULL ist, wird 0 zurückgegeben.

+0

Doh! Ich weiß nicht, wie ich das verpasst habe –

6

Als documentation sagt

Wenn der Parameter nicht ein Array ist oder kein Objekt mit implementierter Abzählbare Schnittstelle wird 1 zurückgeführt werden.

3

Wahrscheinlich als Folge davon:

var_dump((array)""); 

... diese Druck:

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

Siehe Type Juggling für die schmutzigen Details. Die official answer1 ist, dass einfach der dokumentierten Rückgabewert:

Wenn der Parameter nicht ein Array ist oder kein Objekt mit implementierter Abzählbare Schnittstelle wird 1 zurückgeführt werden. Es gibt eine Ausnahme, wenn array_or_countable NULL ist, wird 0 zurückgegeben.

Verwandte Themen