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

标签 php string validation

我有一个函数 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/>";
}

如果字符串为空则 else 不执行,我不明白为什么,请有人解释一下。

最佳答案

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

if (strTemp != '')

if ($strTemp != '')

您可能还想将其更改为:

if ($strTemp !== '')

因为 != '' 如果你传递的是数字 0 和其他一些情况由于 PHP's automatic type conversion 将返回 true .

不应该使用内置的empty()为此的功能;见评论和PHP type comparison tables .

关于php - 为什么检查字符串是否为空的函数总是返回true?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/718986/

相关文章:

php - 从数据库中获取单个值 - Codeigniter

PHP 库 - 它们是什么以及如何创建一个

php - 用下一个相同 id 的值替换零 - MySQL

Python 字符串函数

如果下一个字符是空格或大写字母字符,PHP 将按点分解字符串

c# - 在长字符串中查找所有以@@开头并以@@结尾的单词

java - 通过注释单独排除某些情况的验证

php imagick 注释抗锯齿

jquery - 我无法启用和禁用表单输入字段

validation - Jersey 2.6 REST 服务升级到 Java 8 tomcat 8 异常 :java. lang.NoSuchMethodError : javax. validation.Configuration.getBootstrapConfiguration