douqiang7462 2016-10-06 17:40
浏览 28

在php中调用具有不同参数类型的函数

I need to build a method column which can called with different arguments type, such like the situation here .

         ->column('herald','style')
         ->column('herald','style','styleText')
         ->column('herald',['kind','style'])
         ->column('herald',['kind','style'],['kindText','styleText'])
         ->column('item',['kind','style'],false)
         ->column('item',['kind','style'],['kindText','styleText'],false)
         ->column('herald_style','style',false)
         ->column('herald_style','style','styleText',false)

I just want the function can be called clearly ,to overwrite like the Java do, and I have been tried using the func_get_args() to handle the arguments one by one, but it`s seem worse..
Is that have any way to do ?

  • 写回答

3条回答 默认 最新

  • duanbicheng3345 2016-10-06 17:56
    关注

    If you mean ['kind','style'] as an array, then try this:

    <?php
    function column()
    {
        $numargs = func_num_args();
        $arg_list = func_get_args();
        for ($i = 0; $i < $numargs; $i++) {
            echo "Argument $i is: " . (!is_array($arg_list[$i]) ? $arg_list[$i]: ' an array ' ). "<br />";
        }
        echo "<br /><br />";
    }
    
    column('herald','style');
    column('herald','style');
    column('herald','style','styleText');
    column('herald',array('kind','style'));
    column('herald',array('kind','style'),array('kindText','styleText'));
    column('item',array('kind','style'),false);
    column('item',array('kind','style'),array('kindText','styleText'),false);
    column('herald_style','style',false);
    column('herald_style','style','styleText',false);
    
    ?>
    
    评论

报告相同问题?

悬赏问题

  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因