首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >默认参数数组没有被输入到PHP中的用户定义函数中?

问默认参数数组没有被输入到PHP中的用户定义函数中?
EN

Stack Overflow用户
提问于 2015-10-07 10:41:09
回答 1查看 80关注 0票数 0

这是一个非常大的用户定义函数的简化版本.

代码语言:javascript
复制
function validate_promotional_code($code, $params = ["reference" => "code", "input-type" => "single", "delimiter" => ","]) {
  global $node_connection;
  $operator_array = [
    "Free With Purchase",
    "Buy One Get One Free"
  ];
  return $params;
}

我多次使用这种方法将带有默认值的关联数组传递给用户定义的函数。它允许我为我的函数设置默认值,而不必担心哪个变量在哪里,等等。

不幸的是,这个函数什么也不返回,它应该返回包含我的默认值的$params数组。

我犯了语法错误吗?为什么我的函数没有接收到我的默认值?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-07 10:48:02

函数将使用默认的$params数组,但只有在函数调用根本不包含$params参数的情况下才使用。

如果为$params传递了任何值,则将使用该值而不是默认值。PHP不关心它是一个数组,也不合并它。你得自己去做:

代码语言:javascript
复制
function validate_promotional_code($code, $params = []) {
    $defaults = ["reference" => "code", "input-type" => "single", "delimiter" => ","];
    $params = array_merge($defaults, $params);

    // ... work with $params ...
}

合并()函数将合并两个数组,而后一个数组中的值将覆盖第一个数组中的值。这就是为什么我们把$defaults作为第一个论点的原因。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32990096

复制
相关文章

相似问题

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