繁体   English   中英

PHP函数,null默认参数

[英]PHP Functions, null default parameters

我有一个PHP函数签名,看起来像这样,我希望第四个参数默认为NULL,如果没有提供。

testfunction($param1, $param2, $param3, $param4=NULL) {
    //do stuff
}

我也可以使用4个参数调用

x = testfunction('100', 'abc', 'xxx', null);

为什么我也可以使用3个参数调用函数而没有任何错误?

x = testfunction('100', 'abc', 'xxx');

我正在做的甚至是正确的(使用3个参数)? 关于如何定义单独的函数签名的传统方法重载的任何想法?

我的问题是一般性的。 希望有人可以在它周围发挥作用。

当您声明这样的函数时:

testfunction($param1, $param2, $param3, $param4=NULL) {
    //do stuff
}

你告诉PHP $ param4已经有了一个值,所以当调用该函数时,已经为它分配了一个值。 它不期望您为该参数发送参数,因为已经分配了默认参数。

因此,它知道该功能将能够(在某种程度上)运行。 它对于创建可选参数很有用。

但是,当您声明一个函数时:

testfunction($param1, $param2, $param3, $param4) {
    //do stuff
}

PHP期望你通过该参数发送($ param4),因为没有它,该函数将无法完成你设置它的工作,至少PHP会假设,因为你永远不会创建一个函数4个参数,其中没有一个在函数体中使用。

说得通?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM