我只是在浏览一个php文件,并且遇到了以下代码:
switch (nvl($mode))
{
case "add" :
print_add_category_form(nvl($id, 0));
break;
case "edit" :
print_edit_category_form($id);
break;
}
nvl()函数做什么?
答案 0 :(得分:6)
可能它就像Oracle的NVL功能,虽然据我所知,它需要两个参数。
我使用PHP作为语言搜索Google Code Search,并且有几个示例如下:
/**
* If $var is undefined, return $default, otherwise return $var.
*/
function nvl(&$var, $default = "")
{
return isset($var) ? $var
: $default;
}
我认为你最好在代码中自己寻找声明,因为ceejayoz建议。
答案 1 :(得分:5)
或者,如果您有权访问PHP 7.0.0,请尝试null coalescing operator" ??"
而不是(Oracle语法):
nvl($id, 0)
您可以使用:
$id ?? 0
答案 2 :(得分:4)
答案 3 :(得分:1)
请参阅以下链接,了解Oracle使用的nvl()的定义。 PHP没有。因此,代码示例的开发人员可能已经实现了类似的功能。
http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/functions105.htm
在我的代码中,我使用自己的实现,这更接近Oracle定义的内容:
顺便说一下:“nvl”只是表示“[n] ull [v] a [l] ue”
// Function: nvl
//
// Replaces null or '' string.
//
// PARAMETERS:
// $val - Value to be returned normally.
// $replace - Value to be returned if $val is null or ''.
//
// RETURNS:
// See parameters.
function nvl($val, $replace)
{
if( is_null($val) || $val === '' ) return $replace;
else return $val;
}