Ich habe eine Funktion isNotEmpty, die true zurückgibt, wenn die Zeichenfolge nicht leer ist und false, wenn die Zeichenfolge leer ist. Ich habe herausgefunden, dass es nicht funktioniert, wenn ich eine leere Zeichenfolge durch sie übergeben.
function isNotEmpty($input)
{
$strTemp = $input;
$strTemp = trim($strTemp);
if(strTemp != '') //Also tried this "if(strlen($strTemp) > 0)"
{
return true;
}
return false;
}
Die Validierung der Zeichenkette mit isNotEmpty ist abgeschlossen:
if(isNotEmpty($userinput['phoneNumber']))
{
//validate the phone number
}
else
{
echo "Phone number not entered<br/>";
}
Wenn die Zeichenkette leer ist, wird das else nicht ausgeführt, ich verstehe nicht warum, kann jemand bitte etwas Licht in dieses Problem bringen.
Eigentlich ein einfaches Problem. Ändern:
if (strTemp != '')
in
if ($strTemp != '')
Man könnte es auch in {{5632948}} ändern:
if ($strTemp !== '')
da != ''
true zurückgibt, wenn Sie eine numerische 0 übergeben und in einigen anderen Fällen aufgrund der automatischen Typkonvertierung von PHP.
Sie sollten hierfür nicht die eingebaute Funktion empty() verwenden; siehe Kommentare und die PHP-Typvergleichstabellen.
Ich verwende immer einen regulären Ausdruck, um auf eine leere Zeichenkette zu prüfen, schon seit den CGI/Perl-Tagen, und auch mit Javascript, warum also nicht auch mit PHP, z.B. (wenn auch ungetestet)
return preg_match('/\S/', $input);
Wobei \S für ein beliebiges Zeichen steht, das nicht aus einem Leerzeichen besteht