[英]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.