首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PHP -默认函数参数

PHP -默认函数参数
EN

Stack Overflow用户
提问于 2016-01-24 14:29:16
回答 3查看 72关注 0票数 0

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

例如:

代码语言:javascript
运行
复制
function test1($a = FALSE, $b = FALSE)
{
    if ($b)
    {
        // ... (some awesome code here)
    }

    //.. (more awesome code)
}

test1(0);

代码语言:javascript
运行
复制
function test2($a = NULL, $b = NULL)
{
    if ($b !== NULL)
    {
        // ... (some awesome code here)
    }

    //.. (more awesome code)
}

test2(0);

注意:在使用$a === NULL时,也要考虑一些问题。还可以使用“!empty()”,这取决于下面的代码是否需要空值。

哪个是更好的设计,为什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-01-24 14:40:03

从逻辑上讲,NULL值应该被视为不存在的东西。相反,FALSE有一些语义值,即使您可以将它视为一个空值。

所以,将FALSE作为是或否的答案,NULL作为无答案。如果您的参数是一个类似于$enable_this的选项,那么它可以是一个布尔值,并且您可能希望检查它是否为

代码语言:javascript
运行
复制
if ($var)

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

代码语言:javascript
运行
复制
if($var !== null)

只有当您希望将empty测试为空值时,才应该使用它。$var不能是空字符串、空数组、"0"0

票数 2
EN

Stack Overflow用户

发布于 2016-01-24 14:36:01

使用此

代码语言:javascript
运行
复制
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 && $b=0会失败

票数 2
EN

Stack Overflow用户

发布于 2016-01-24 15:07:58

你也可以这样做:

代码语言:javascript
运行
复制
function test1($a = FALSE, $b = FALSE) {
  if ($b===false) {
    // ... (process default val-false)
  }else{
    //.. (process supplied value)
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34976959

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档