MySQL ifnull相当于php

时间:2009-09-09 21:50:34

标签: php

我的情景:

$exTime = get_cfg_var("session.gc_maxlifetime")?get_cfg_var("session.gc_maxlifetime"):1440;

我希望它像mysql一样:

$exTime = isnull(get_cfg_var("session.gc_maxlifetime"),1440);

或类似的东西,也可以理想地测试FALSE。那样我只需要调用一次这个函数!

我知道我可以将它分配给var,但这会在我的代码中添加另一行(哦,no !!)。这真的是一个美化的东西,我认为它更容易阅读。无论如何谷歌没有帮助我(inb4有人证明我错了)。谢谢!

2 个答案:

答案 0 :(得分:12)

从PHP 5.3起,您还可以使用short ternary operator

$exTime = get_cfg_var("session.gc_maxlifetime") ?: 1440;

这基本上是您预期的功能,但无需声明该功能。在5.3之前的PHP版本中,您应该使用André的答案。

请记住,调用该函数可能会抛出警告,如果它要检查未指定键的数组:

$array = array(
    0 => array(
        0 => 100
    )
);

$example = isNull($array[0][1], 200);

答案 1 :(得分:3)

添加这个小功能怎么样?

function isnull($var, $default=null) {
    return is_null($var) ? $default : $var;
}

我不知道任何能够做你想要的功能,但是因为 很难实现,所以如果你经常使用它,也可以这样做。