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); //直接只传一个参数,函数里面又知道传的是第三个参数?不是第一个? 就是只传一个或两个参数的时候,不用按顺序填前面占位?
除了判断,传进去的参数的类型有什么好方法? 展开
}
//例如这个函数四个参数调用的时候,我只用到第三个参数,这时只传一个参数第三个int那个,需要调用这个函数的时候,test('',0,100); 这样调到很麻烦!,需要填前面两个占位!
怎么实现这样调用 test(100); //直接只传一个参数,函数里面又知道传的是第三个参数?不是第一个? 就是只传一个或两个参数的时候,不用按顺序填前面占位?
除了判断,传进去的参数的类型有什么好方法? 展开
6个回答
展开全部
这个不行,因为本身就会有逻辑错误。比如:他怎么知道。test(100)是$i,而不是$obj呢。也可能是第五个参数呢。要么test方法判断,要么占位。这个没啥好办法
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的函数的状态太多....就是运行的前提太多。另外写一个函数包含了这个的运行状态再运行
function test2($i=0){ test('',0,$i,null);}
调用test2(100);
function test2($i=0){ test('',0,$i,null);}
调用test2(100);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
简单的不定量传参函数可以解决无序传参:在你这做个记号,免得以后忘了;
function test($value){
if(isset($value['1']){
echo “当传递了第一个参数的时候:{$value['1']}”;
}
if(isset($value['2']){
echo “当传递了第二个参数的时候:{$value['2']}";
}
}
test([1=>"test1"]);
test([2=>["test2"]);
function test($value){
if(isset($value['1']){
echo “当传递了第一个参数的时候:{$value['1']}”;
}
if(isset($value['2']){
echo “当传递了第二个参数的时候:{$value['2']}";
}
}
test([1=>"test1"]);
test([2=>["test2"]);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
function handle(...$args){
$params_array = func_get_args();
var_dump($params_array);
}
这个方法支持任意多个参数
$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])
function test($data=[]){
$str=$data['str']??'';
$flot=$data['flot']??0;
$i=$data['i']??0;
$obj=$data['obj']??null;
}
调用 :test(['i'=>2])
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询