PHP - 默认函数参数

时间:2016-01-24 14:29:17

标签: php function

空函数参数应设置为NULL还是FALSE

如下所示:

function test1($a = FALSE, $b = FALSE)
{
    if ($b)
    {
        // ... (some awesome code here)
    }

    //.. (more awesome code)
}

test1(0);

function test2($a = NULL, $b = NULL)
{
    if ($b !== NULL)
    {
        // ... (some awesome code here)
    }

    //.. (more awesome code)
}

test2(0);

请注意;还需要考虑的事项 - 使用$a === NULL时。也可以使用' !empty()'取决于以下代码是否需要空值。

哪种设计更好,为什么?

3 个答案:

答案 0 :(得分:2)

使用此

Literal Control Text

不要使用function test($a = NULL, $b = NULL) { if ($b !== NULL) { // ... (some awesome code here) } //.. (more awesome code) } test(0); if(!empty($b))if($b!=NULL),因为if(!is_null($b))&&在这种情况下,$b=false将失败

答案 1 :(得分:2)

逻辑上,NULL值应视为不存在的值。 FALSE具有一些语义值,即使您可以将其视为空值。

因此,使用FALSE来回答是或否,NULL作为答案。 如果您的参数是$enable_this之类的选项,则它可以是布尔值,您可能需要检查它是否为真

if ($var)

相反,如果您可以选择将某些内容作为参数传递,默认情况下它可以是NULL,然后您可以检查它是否真的存在

if($var !== null)

仅当您要将其测试为空值时,才应使用empty$var不能是空字符串,空数组,"0"还是0

答案 2 :(得分:0)

你也可以这样做:

function test1($a = FALSE, $b = FALSE) {
  if ($b===false) {
    // ... (process default val-false)
  }else{
    //.. (process supplied value)
  }
}