栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在函数中使用默认参数

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在函数中使用默认参数

我建议按如下所示更改函数声明,以便您可以执行所需的操作:

function foo($blah, $x = null, $y = null) {    if (null === $x) {        $x = "some value";    }    if (null === $y) {        $y = "some other value";    }    pre here!}

这样,您可以像这样进行调用

foo('blah', null, 'non-default yvalue');
并使它按需要工作,其中第二个参数
$x
仍将获得其默认值。

使用此方法,传递空值意味着要覆盖一个参数的默认值,而要覆盖其后的参数的默认值。

如其他答案所述,

默认参数仅用作该函数的最后一个参数。如果要在函数定义中声明默认值,则无法省略一个参数并在其后覆盖一个参数。

如果我有一个可以接受数量不定的参数以及类型不同的参数的方法,那么我通常会声明类似于Ryan P所示答案的函数。

这是另一个示例(虽然不能回答您的问题,但希望能为您提供有益的参考:

public function __construct($params = null){    if ($params instanceof SOMETHING) {        // single parameter, of object type SOMETHING    } else if (is_string($params)) {        // single argument given as string    } else if (is_array($params)) {        // params could be an array of properties like array('x' => 'x1', 'y' => 'y1')    } else if (func_num_args() == 3) {        $args = func_get_args();        // 3 parameters passed    } else if (func_num_args() == 5) {        $args = func_get_args();        // 5 parameters passed    } else {        throw new InvalidArgumentException("Could not figure out parameters!");    }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/433187.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号