检查作为参数传递的变量是否已设置

发布于 2024-09-15 05:24:45 字数 968 浏览 10 评论 0原文

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

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

问题是我找不到检查变量是否为空的方法$smthis_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; 
        } 
    } 
}

并且效果很好。非常感谢您的想法

I want to check if a variable called $smth is blank (I mean empty space), and I also want to check if it is set using the function I defined below:

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

The problem is I can't find a way to check if variable $smth is set inside is_blank() function. The following code solves my problem but uses two functions:

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

If I use an undeclared variable as an argument for a function it says:

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

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

Do you have a solution for this?

Solution

This is what I came up with:

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

and works like a charm. Thank you very much for the idea, NikiC.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

鹤仙姿 2024-09-22 05:24:48

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

Whenever you use a variable outside of empty and isset it will be checked if it was set before. So your solution with isset is correct and you cant' defer the check into the is_blank function. If you only want to check if the variable is empty, use just the empty function instead. But if you want to specifically check for an empty string after a trim operation, use isset + your is_blank function.

若无相欠,怎会相见 2024-09-22 05:24:48

使用。它检查变量是否为 0、空或根本未设置。

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

Use empty. It checks whether the variable is either 0, empty, or not set at all.

if(empty($smth))
{
    //code;
}
起风了 2024-09-22 05:24:47

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

function is_blank(&$var){
    return !isset($var) || trim($var) == '';
}

Simply pass by reference and then do isset check:

function is_blank(&$var){
    return !isset($var) || trim($var) == '';
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文