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?
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?
Für Formulare verwende ich isset
. Es ist expliziter. ; -)
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.