小编典典

为什么检查字符串是否为空的函数总是返回true?

all

我有一个函数 isNotEmpty 如果字符串不为空则返回 true,如果字符串为空则返回 false。我发现如果我通过它传递一个空字符串,它就不起作用。

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/>";
}

如果字符串为空,否则不会执行,我不明白为什么,请有人对此有所了解。


阅读 62

收藏
2022-05-30

共1个答案

小编典典

其实很简单的问题。改变:

if (strTemp != '')

if ($strTemp != '')

可以说,您可能还想将其更改为:

if ($strTemp !== '')

因为!= ''如果你传递的是数字 0 和其他一些情况,由于PHP
的自动类型转换
,因为将返回 true 。

不应该 为此使用内置的empty()函数;请参阅注释和PHP
类型比较表

2022-05-30