IT story

문자열이 비어 있는지 확인

hot-time 2020. 5. 1. 08:09
반응형

문자열이 비어 있는지 확인


문자열이 비어 있지 않으면 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 날짜로 거슬러 올라가는 자바 스크립트를 검사하기 위해 정규 표현식을 사용하므로 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)

http://www.php.net/empty


PHP는 빈 문자열을 false로 평가하므로 간단하게 사용할 수 있습니다.

if (trim($userinput['phoneNumber'])) {
  // validate the phone number
} else {
  echo "Phone number not entered<br/>";
}

strlen () 함수를 사용하십시오.

if (strlen($s)) {
   // not empty
}

Well, instead of an answer (I believe you fixed your problem already), I'll offer you a piece of advice.

I don't know about all the others, but I personally get very annoyed at the sight of something like:

if(<<condition>>)
    {
         return true;
    }

    return false;

this calls for an elegant "return (<<condition>>);" solution. Please always take a look at your code and remove this sort of logic. You don't need an IF statement for every situation.


I just write my own function, is_string for type checking and strlen to check the length.

function emptyStr($str) {
    return is_string($str) && strlen($str) === 0;
}

print emptyStr('') ? "empty" : "not empty";
// empty

Here's a small test repl.it

EDIT: You can also use the trim function to test if the string is also blank.

is_string($str) && strlen(trim($str)) === 0;    

Well here is the short method to check whether the string is empty or not.

$input; //Assuming to be the string


if(strlen($input)==0){
return false;//if the string is empty
}
else{
return true; //if the string is not empty
}

I needed to test for an empty field in PHP and used

ctype_space($tempVariable)

which worked well for me.


maybe you can try this

if(isNotEmpty($userinput['phoneNumber']) == true)

that's because of the php configuration in php.ini


if you have a field namely serial_number and want to check empty then

$serial_number = trim($_POST[serial_number]);
$q="select * from product where user_id='$_SESSION[id]'";
$rs=mysql_query($q);
while($row=mysql_fetch_assoc($rs)){
if(empty($_POST['irons'])){
$irons=$row['product1'];
}

in this way you can chek all the fileds in the loop with another empty function


You got an answer but in your case you can use

return empty($input);

or

return is_string($input);

I know this thread been pretty old but I just wanted to share one of my function. This function below can check for empty strings, string with maximum lengths, minimum lengths, or exact length. If you want to check for empty strings, just put $min_len and $max_len as 0.

function chk_str( $input, $min_len = null, $max_len = null ){

    if ( !is_int($min_len) && $min_len !== null ) throw new Exception('chk_str(): $min_len must be an integer or a null value.');
    if ( !is_int($max_len) && $max_len !== null ) throw new Exception('chk_str(): $max_len must be an integer or a null value.'); 

    if ( $min_len !== null && $max_len !== null ){
         if ( $min_len > $max_len ) throw new Exception('chk_str(): $min_len can\'t be larger than $max_len.');
    }

    if ( !is_string( $input ) ) {
        return false;
    } else {
        $output = true;
    }

    if ( $min_len !== null ){
        if ( strlen($input) < $min_len ) $output = false;
    }

    if ( $max_len !== null ){
        if ( strlen($input) > $max_len ) $output = false;
    }

    return $output;
}

You can simply cast to bool, dont forget to handle zero.

function isEmpty(string $string): bool {
    if($string === '0') {
        return false;
    }
    return !(bool)$string;
}

var_dump(isEmpty('')); // bool(true)
var_dump(isEmpty('foo')); // bool(false)
var_dump(isEmpty('0')); // bool(false)

this is the short and effective solution, exactly what you're looking for :

return $input > null ? 'not empty' : 'empty' ;

참고URL : https://stackoverflow.com/questions/718986/checking-if-the-string-is-empty

반응형