在PHP中,如何包装我自己的is_empty函数?

时间:2013-01-25 01:08:27

标签: php

我尝试使用empty()包装自己的函数。 名为is_empty的函数用于检查值是否为空,如果为空,则返回指定值。代码如下。

static public function is_empty($val,$IfEmptyThenReturnValue)
    {
        if(empty($val))
        {
            return $IfEmptyThenReturnValue;
        }
        else
        {
            return $val;
        }
    } 

我称这个函数是这样的:

$d="it's a value";
echo  Common::is_empty($d, "null");

没关系。它打印出“这是一个价值”。

但如果我没有定义$d。如下所示:

echo  Common::is_empty($d, "null");

是的,它将打印“null”。 但它也会打印waring:Notice

 Undefined variable: d in D:\phpwwwroot\test1.php on line 25.

那么如何修复这个功能?

2 个答案:

答案 0 :(得分:1)

一个简单的&来拯救你的生命:

class Common{
    static public function is_empty(&$val,$IfEmptyThenReturnValue){
        if(empty($val)){
            return $IfEmptyThenReturnValue;
        }else{
            return $val;
        }
    }
}

echo Common::is_empty($d,"null");

答案 1 :(得分:0)

你可以通过传递变量的名称而不是变量本身,然后在函数中使用变量变量来解决这个问题:

static public function is_empty($var, $IfEmptyThenReturnValue)
{
    if(empty($$var))
    {
        return $IfEmptyThenReturnValue;
    }
    else
    {
        return $$var;
    }
} 

echo Common::is_empty('d', 'null');

然而,我首先要做的就是这样做:

echo empty($d) ? 'null' : $d;