这两个功能描述有什么区别? function func([b [,c]])和函数func([b],[c])?

时间:2016-01-01 12:25:20

标签: php function

我在一本书中查看了php的函数参考,然后我遇到了这些函数的描述,我无法理解这两个定义之间的差异是什么?

function some_function([b], [c])

private void ToolStripPro_ControlAdded(object sender, ControlEventArgs e)
{
    if (!CheckType(e.Control.GetType(), typeof(ToolStripProControl)))
    {
        this.Controls.Remove(e.Control);
    }

    Invalidate();
}

1 个答案:

答案 0 :(得分:3)

语法描述中的方括号通常表示内容是可选的。第一个函数描述表明您可以将函数调用为:

some_function(); // no arguments
some_function(b); // just supply b
some_function(b, c); // supply both b and c

这是因为可选参数c位于列出两个参数的括号内。

第二个描述说两个参数都是可选的,但它们之间没有依赖关系。所以它可以被称为:

some_function(); // no arguments
some_function(b); // just supply b
some_function(c); // just supply c
some_function(b, c); // supply both b and c

这意味着bc必须是不同的类型,因此当您使用单个参数调用它时,它会确定它是b还是{{1基于它的类型。函数的描述应该解释这一点。