【问题标题】:Variable assignments done in function parameter declaration在函数参数声明中完成的变量赋值
【发布时间】:2014-07-15 17:14:17
【问题描述】:

我正在维护一个用 PHP 和 Javascript 编写的软件,但偶然发现了一些我不熟悉的东西:

class xyz{
var $foo1 = ' ';
var $foo2 = false;
var $foo3 = ' ';
function xyz($newVariable, $foo1 = 'rabbit', $foo2 = true, $foo3 = 'bird') {
...
}}

以及代码中的其他地方:

function bleh(){
xyz('hello);
}

为什么在我的第一个函数的参数字段中分配变量而不是直接在构造函数中?为什么 bleh 在声明中有 4 个参数时调用 xyz 时只有 1 个参数?

谢谢!

【问题讨论】:

  • 因为该方法需要默认值才能在其主体中操作,而不是在类中。
  • 函数 xyz 使用默认参数声明(即 $foo1='rabbit' 等)。当 xyz 在 bleh() 中仅使用 1 个参数调用时,其余 3 个将采用它们的默认值。

标签: javascript php function parameters


【解决方案1】:

这些被称为默认参数。如果参数缺失(未设置),它们将默认为参数中的值。
由于 PHP 中不允许函数重载,这是一个很好的解决方法。

【讨论】:

  • 谢谢。如果我想调用 "xyz" 并重新定义 $foo3 同时保留 $foo1 和 $foo2 的默认值,我该怎么办?
  • 重新排序参数。否则 xyz('val', 'rabbit', true, 'newValue)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-23
  • 1970-01-01
  • 2011-10-03
  • 1970-01-01
  • 2021-01-01
相关资源
最近更新 更多