php函数多个参数实现传参任意顺序? 100

functiontest($str='',$flot=0,$i=0,$obj=null){}//例如这个函数四个参数调用的时候,我只用到第三个参数,这时只传一个参数第三个... function test($str='',$flot=0,$i=0,$obj=null){

}
//例如这个函数四个参数调用的时候,我只用到第三个参数,这时只传一个参数第三个int那个,需要调用这个函数的时候,test('',0,100); 这样调到很麻烦!,需要填前面两个占位!
怎么实现这样调用 test(100); //直接只传一个参数,函数里面又知道传的是第三个参数?不是第一个? 就是只传一个或两个参数的时候,不用按顺序填前面占位?
除了判断,传进去的参数的类型有什么好方法?
展开
 我来答
徐_赫
2016-08-08 · TA获得超过382个赞
知道小有建树答主
回答量:61
采纳率:0%
帮助的人:48.4万
展开全部
这个不行,因为本身就会有逻辑错误。比如:他怎么知道。test(100)是$i,而不是$obj呢。也可能是第五个参数呢。要么test方法判断,要么占位。这个没啥好办法
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友9308069
2018-03-24 · TA获得超过1万个赞
知道大有可为答主
回答量:3947
采纳率:89%
帮助的人:1960万
展开全部
你的函数的状态太多....就是运行的前提太多。另外写一个函数包含了这个的运行状态再运行
function test2($i=0){ test('',0,$i,null);}
调用test2(100);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友b744a58
2018-10-31
知道答主
回答量:35
采纳率:50%
帮助的人:12.7万
展开全部
简单的不定量传参函数可以解决无序传参:在你这做个记号,免得以后忘了;
function test($value){
if(isset($value['1']){
echo “当传递了第一个参数的时候:{$value['1']}”;
}
if(isset($value['2']){
echo “当传递了第二个参数的时候:{$value['2']}";
}
}
test([1=>"test1"]);
test([2=>["test2"]);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
miss澹台
2020-06-16
知道答主
回答量:7
采纳率:0%
帮助的人:4083
展开全部
function handle(...$args){
$params_array = func_get_args();
var_dump($params_array);
}
这个方法支持任意多个参数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2022-04-02
展开全部
//一个数组搞定 , 相传什么传什么
function test($data=[]){
$str=$data['str']??'';
$flot=$data['flot']??0;
$i=$data['i']??0;
$obj=$data['obj']??null;
}
调用 :test(['i'=>2])
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式