怎么在PHP中实现一个函数重载功能-创新互联

怎么在PHP中实现一个函数重载功能?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

专注于为中小企业提供成都网站设计、做网站、成都外贸网站建设公司服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业伍家岗免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上千余家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
";
    echo '$name为'.$name."
";     print_r ($arguments);   } } (new A)->test("test","argument"); ?>

运行结果为:

__call调用
$name为test
Array ( [0] => test [1] => argument )

因此只需要利用该魔术方法既可以实现函数重载。

代码如下:

";
  }
  function f2($a1,$a2)
  {
    echo "2个参数".$a1.",".$a2."
";   }   function f3($a1,$a2,$a3)   {      echo "3个参数".$a1.",".$a2.",".$a3."
";   } } (new A)->f('a'); (new A)->f('a','b'); (new A)->f('a','b','c'); ?>

输出如下:

1个参数a
2个参数a,b
3个参数a,b,c

同样的在PHP中,实现构造函数的重载,也只能变通的实现。实现的关键要素是获取输入参数,并且根据输入参数判断调用哪个方法。下面是一个示例代码:

";
    $a = func_get_args(); //获取构造函数中的参数
    $i = count($a);
    if (method_exists($this,$f='__construct'.$i)) {
      call_user_func_array(array($this,$f),$a);
    }
  }
  function __construct1($a1)
  {
    echo "1个参数".$a1."
";   }   function __construct2($a1,$a2)   {     echo "2个参数".$a1.",".$a2."
";   }   function __construct3($a1,$a2,$a3)   {      echo "3个参数".$a1.",".$a2.",".$a3."
";   } } $o = new A('a'); $o = new A('a','b'); $o = new A('a','b','c'); ?>

执行构造函数
1个参数a
执行构造函数
2个参数a,b
执行构造函数
3个参数a,b,c

看完上述内容,你们掌握怎么在PHP中实现一个函数重载功能的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!


网页标题:怎么在PHP中实现一个函数重载功能-创新互联
URL标题:http://ybzwz.com/article/spjsc.html