php 参数可以指定默认值,但是必须按照顺序,如果中间参数缺省也不得不传递,Java、Js等语言大多也是如此。
如果希望:不按照顺序,缺省时使用默认值,则需要手动实现。
思路:封装一个参数类,或数组结构,当做统一的参数管理,传递时只传递给结构,在方法内再从该结构中取出每一个参数即可。
其中,php 可使用关联数组,Java可使用 Map<String,Object>,而 js 可使用 {} 字面量对象即可。
<?php
function myFun(array $param=array()){
$page = $param['page'] ?? 1;
$pageSize = $param['pageSize'] ?? 10;
echo $page."<br>".$pageSize."<br>";
}
myFun(); // 1, 10
myFun(['pageSize'=>20]); // 1, 20
?>
Java中的map,可使用 containsKey 判断。
js 可参考如下示例:
<script>
function myFunc({page=1,pageSize=10}={}){
document.write(page+"<br>"+pageSize+"<br>");
}
myFunc(); // 1, 10
myFunc({pageSize:20}); // 1, 20
</script>
本篇完,还有疑问?留下评论吧