php 可选择,PHP中可选参数是不是必须在必选参数之后?

public function addHost($groupId, $nodeId = "node_0", $role = "master", $hostConfig)

{

//.....

}

在我映象中一直都是必选参数定义在可选参数之前的,上面这段代码是在 lotusphp 中看到的源码,请问这样定义如何使用呢?

回复内容:

public function addHost($groupId, $nodeId = "node_0", $role = "master", $hostConfig)

{

//.....

}

在我映象中一直都是必选参数定义在可选参数之前的,上面这段代码是在 lotusphp 中看到的源码,请问这样定义如何使用呢?

function test($a, $b = 3, $c = 4 ,$d) {

echo $a.$b.$c.$d;

}

echo test(4, "", "", 9);

//打印结果

//49

echo test(4, null, null, 9);

//打印结果

//49

实际上 $b = 3, $c = 4 的默认值永远不会设置成功的。

如果第四个参数是必选参数,那么使用函数时必须有四个以上参数,此时默认参数无意义。

1. 你的印象不正确,必选参数和可选参数没有顺序的,不一定要把可选参数放在最后

2. lotusphp的addHost()方法设计成这样,主要是因为group, node, role在概念层次上是渐进的,颠倒次序逻辑上不利于记忆,而config

3. 调用方法就是addHost("global_group", , , array("host"=> "127.0.0.1")),更多调用方法请参见lotusphp/unittest/Db/RightWayToUse.php

楼上正解,php中不讲究默认参数的位置,但是调用的时候又不能隔开,如

function test($a,$b=3,$c=4 ,$d)

{

echo $a.$b.$c.$d;

}

echo test(1,2,3,5);//可以通过

echo test(1,,,5);//错误

相关标签:php 参数

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值