2

我想检查一个名为 $smth 的变量是否为空白(我的意思是空白),我还想检查它是否使用我在下面定义的函数设置:

function is_blank($var){
    $var = trim($var);
    if( $var == '' ){
        return true;
    } else {
        return false;
    }
}

问题是我找不到检查变量$smth是否在is_blank()函数内部设置的方法。以下代码解决了我的问题,但使用了两个功能:

if( !isset($smth) || is_blank($smth) ){
    // code;
}

如果我使用未声明的变量作为函数的参数,它会说:

if( is_blank($smth) ){
    //code;
}

Undefined variable: smth in D:\Www\www\project\code.php on line 41

您对此有解决方案吗?

解决方案

这就是我想出的:

function is_blank(&$var){ 
    if( !isset($var) ){ 
        return true; 
    } else { 
        if( is_string($var) && trim($var) == '' ){ 
            return true; 
        } else { 
            return false; 
        } 
    } 
}

并且像魅力一样工作。非常感谢你的想法NikiC

4

3 回答 3

10

只需通过引用传递,然后进行 isset 检查:

function is_blank(&$var){
    return !isset($var) || trim($var) == '';
}
于 2010-08-23T11:26:02.750 回答
0

每当您在外部使用变量时emptyisset都会检查它是否之前设置过。因此,您使用 isset 的解决方案是正确的,您不能将检查推迟到is_blank函数中。如果您只想检查变量是否为空,请仅使用该empty函数。但是,如果您想在操作后专门检查空字符串trim,请使用isset+ 您的is_blank函数。

于 2010-08-23T11:23:34.117 回答
-1

使用empty. 它检查变量是否为 0、为空或根本没有设置。

if(empty($smth))
{
    //code;
}
于 2010-08-23T11:23:06.543 回答