• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

PHP利用func_get_args和func_num_args函数实现函数重载实例_php技巧

php 搞代码 3年前 (2022-01-26) 32次浏览 已收录 0个评论

本文实例讲述了PHP利用func_get_args和func_num_args函数实现函数重载的方法。分享给大家供大家参考。具体方法分析如下:

学习php的朋友都知道php本身是没有函数重载这一说的,更没说像java,c那样使用方法,但如果我们深入了解一下会发现可以在php中使用func_get_args()和func_num_args()函数实现函数重载,下面来举两个函数重载例子.这两个函数实现函数的重载.

1、默认参数,如果一个函数里面,这不是必须参数,而添加相应的默认值,就可以完成相应的功能,代码如下:

function overloadFun($param1, $param2 = '1',$param3 = true)  <br />{  <br /> // do something   <br />}

利用函数func_get_args()和call_user_func_array(),PHP代码如下:

function rewrite() {     <br />$args = func_get_args();     <br />if(func_num_args() == 1) {     <br />func1($args[0]);     <br />} else if(func_num_args() == 2) {     <br />func2($args[0], $args[1]);     <br />}     <br />}     <br />    <br />function func1($arg) {     <br />echo $arg;     <br />}     <br />    <br />function func2($arg1, $arg2) {     <br />echo $arg1, ' ', $arg2;     <br />}     <br />    <br />rewrite('PHP'); //调用func1     <br />rewrite('PHP','China'); //调用func2

2、使用默认值,从而根据输入,得到自己想要的结果,代码如下:

function test($name="小李",$age="23"){    <br />echo $name."  ".$age;    <br />}    <br />test();    <br />echo "<br />";    <br />test("a");    <br />echo "<br />";    <br />test("a","b");

3、利用__call($name, $arg) 函数进行处理,代码如下:

<?php  <br />class OverLoad{  <br />function __call($name, $args)  <br />{  <br />  if($name=='overloadFun')  <br />  {  <br />   sw<div style="color:transparent">!本文来源gaodai.ma#com搞#代!码(网</div><em>搞gaodaima代码</em>itch(count($args))  <br />   {  <br />    case 0: $this->overloadFun0();break;  <br />    case 1: $this->overloadFun1($args[0]); break;  <br />    case 2: $this->overloadFun2($args[0], $args[1]); break;  <br />    default: //do something  <br />      break;  <br />   }  <br />  }  <br />}  <br />     <br />function overloadFun0()  <br />{  <br />  echo 0;  <br />} </p><p>function overloadFun1($var1)  <br />{  <br />  echo $var1;  <br />} </p><p>function overloadFun2($var1,$var2)  <br />{  <br />    <br />  echo $var1+$var2;  <br />   }  <br />}    <br />$test=new OverLoad();  <br />$test->overloadFun()."<br />".   <br />$test->overloadFun(1)."<br />".   <br />$test->overloadFun(1,2)."<br />";  <br />?>

有了这样的方法之后我们就可以利用它们来实现简单函数重载了,但有一点要注明的是php 作为一种弱类型语言,本身不能像强类型如java,c++那样,直接的实现重载,至少现在不可以以后版本会不会有我们不知道.

希望本文所述对大家的PHP程序设计有所帮助。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PHP利用func_get_args和func_num_args函数实现函数重载实例_php技巧

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址