문자열이 비어 있지 않으면 true를 반환하고 문자열이 비어 있으면 false를 반환하는 isNotEmpty 함수가 있습니다. 빈 문자열을 전달하면 작동하지 않는 것으로 나타났습니다.
function isNotEmpty($input)
{
$strTemp = $input;
$strTemp = trim($strTemp);
if(strTemp != '') //Also tried this "if(strlen($strTemp) > 0)"
{
return true;
}
return false;
}
isNotEmpty를 사용하여 문자열의 유효성 검증이 수행됩니다.
if(isNotEmpty($userinput['phoneNumber']))
{
//validate the phone number
}
else
{
echo "Phone number not entered<br/>";
}
문자열이 비어 있으면 다른 것이 실행되지 않습니다. 왜 그런지 이해할 수 없습니다. 누군가 가이 내용을 밝힐 수 있습니까?
답변
실제로 간단한 문제. 변화:
if (strTemp != '')
에
if ($strTemp != '')
아마도 당신은 그것을 다음과 같이 바꾸고 싶을 수도 있습니다 :
if ($strTemp !== '')
이후 != ''
당신이 통과하면 true를 돌려줍니다 0 숫자와 인해 약간 다른 경우입니다 PHP의 자동 형 변환 .
이를 위해 내장 empty () 함수를 사용 해서는 안됩니다 . 주석 및 PHP 유형 비교표를 참조하십시오 .
답변
PHP는
Reference php.net : php empty를empty()
입력하여 테스트
라는 내장 함수를 가지고 있습니다if(empty($string)){...}
답변
나는 항상 빈 문자열을 확인하고 CGI / Perl 일과 Javascript를 사용하여 정규 표현식을 사용하므로 PHP를 사용하지 않는 이유는 무엇입니까?
return preg_match('/\S/', $input);
여기서 \ S는 공백이 아닌 문자를 나타냅니다.
답변
if
함수 의 절에서 strTemp
존재하지 않는 변수 를 참조하고 있습니다. $strTemp
그래도 존재합니다.
그러나 PHP에는 이미 empty()
사용 가능한 기능이 있습니다. 왜 자신을 만드나요?
if (empty($str))
/* String is empty */
else
/* Not empty */
php.net에서 :
반환 값
var에 비어 있지 않고 0이 아닌 값이 있으면 FALSE를 반환합니다.
다음은 비어있는 것으로 간주됩니다.
* "" (an empty string) * 0 (0 as an integer) * "0" (0 as a string) * NULL * FALSE * array() (an empty array) * var $var; (a variable declared, but without a value in a class)
답변
PHP는 빈 문자열을 false로 평가하므로 간단하게 사용할 수 있습니다.
if (trim($userinput['phoneNumber'])) {
// validate the phone number
} else {
echo "Phone number not entered<br/>";
}
답변
strlen () 함수를 사용하십시오.
if (strlen($s)) {
// not empty
}