Gibt es einen Unterschied zwischen strlen () == 0 und leer ()?

7

Ich habe mir einen Formularvalidierungscode angeschaut, den jemand anders geschrieben hat, und ich habe Folgendes gesehen:

%Vor%

Beim Testen, um festzustellen, ob eine Formularvariable leer ist, verwende ich die Funktion empty() . Ist der eine Weg besser als der andere? Sind sie funktional gleichwertig?

    
red4d 16.08.2011, 02:19
quelle

8 Antworten

4

strlen soll die Anzahl der Zeichen in einer Zeichenkette ermitteln, während empty verwendet wird, um zu testen, ob eine Variable leer ist

Bedeutung von leer:

%Vor%     
dpp 16.08.2011, 02:25
quelle
7

Es gibt ein paar Fälle, in denen sie ein anderes Verhalten haben werden:

%Vor%     
Paulpro 16.08.2011 02:26
quelle
6

Folgende Dinge gelten als leer:

%Vor%

strlen () überprüfe einfach, ob die Zeichenkette len 0 ist. Es wird nicht nach int, float usw. gesucht. Was ist deine Situation?

Referenz

    
Hammad Khan 16.08.2011 02:24
quelle
2
%Vor%

Für Formulare verwende ich isset . Es ist expliziter. ; -)

    
cwallenpoole 16.08.2011 02:24
quelle
2

empty() gibt wahr zurück, wenn $x = "0" . Es gibt also einen Unterschied.

Ссылка

    
Kal 16.08.2011 02:25
quelle
2

empty ist das Gegenteil von boolean false.

empty ist ein Sprachkonstrukt.

strlen ist eine Funktion.

strlen gibt die Länge der Bytes einer Zeichenfolge zurück.

strlen($str)==0 ist ein Vergleich der Byte-Länge, die 0 ist (loser Vergleich).

Dieser Vergleich führt zu "true", wenn die Zeichenfolge leer ist - genauso wie der Ausdruck empty($str) bei einer leeren Zeichenfolge (Länge null).

Aber für alles andere:

empty ist das Gegenteil von boolean false.

strlen gibt die Länge der Bytes einer Zeichenfolge zurück.

Sie teilen nicht viel miteinander.

    
hakre 16.08.2011 03:21
quelle
0

empty() gilt für alle Variablentypen. strlen() , denke ich, ist besser mit Strings oder etwas zu verwenden, das sicher in Strings umgewandelt werden kann. Zum Beispiel,

%Vor%

wird PHP Warning: strlen() expects parameter 1 to be string, array given error

ausgeben     
Timur 16.08.2011 02:25
quelle
0

wenn die Eingabe 0 ist,

%Vor%     
Raptor 16.08.2011 02:27
quelle

Tags und Links