我尝试使用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.
那么如何修复这个功能?
答案 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;