0

我尝试使用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.

那么如何修复这个功能呢?

4

2 回答 2

1

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

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

echo Common::is_empty($d,"null");
于 2013-01-25T01:12:12.037 回答
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;
于 2013-01-25T01:11:13.967 回答