GVKun编程网logo

PHP利用func_get_args和func_num_args函数实现函数重载实例(php func_get_args)

13

本文将分享PHP利用func_get_args和func_num_args函数实现函数重载实例的详细内容,并且还将对phpfunc_get_args进行详尽解释,此外,我们还将为大家带来关于func_

本文将分享PHP利用func_get_args和func_num_args函数实现函数重载实例的详细内容,并且还将对php func_get_args进行详尽解释,此外,我们还将为大家带来关于func_get_arg, func_get_args 和 func_num_args 函数、func_get_args () 在 php71 与 php56 的区别、func_get_args() func_get_arg(offset) func_num_args(); 函数使用、func_get_args() func_get_arg(offset) func_num_args(); 函数使用_PHP教程的相关知识,希望对你有所帮助。

本文目录一览:

PHP利用func_get_args和func_num_args函数实现函数重载实例(php func_get_args)

PHP利用func_get_args和func_num_args函数实现函数重载实例(php func_get_args)

《PHP实战:PHP利用func_get_args和func_num_args函数实现函数重载实例》要点:
本文介绍了PHP实战:PHP利用func_get_args和func_num_args函数实现函数重载实例,希望对您有用。如果有疑问,可以联系我们。

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

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

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

代码如下:
function overloadFun($param1,$param2 = '1',$param3 = true) 

 // do something  
}

利用函数func_get_args()和call_user_func_array(),PHP代码如下:
代码如下:
function rewrite() {    
$args = func_get_args();    
if(func_num_args() == 1) {    
func1($args[0]);    
} else if(func_num_args() == 2) {    
func2($args[0],$args[1]);    
}    
}    
   
function func1($arg) {    
echo $arg;    
}    
   
function func2($arg1,$arg2) {    
echo $arg1,' ',$arg2;    
}    
   
rewrite('PHP'); //调用func1    
rewrite('PHP','China'); //调用func2

2、使用默认值,从而根据输入,得到自己想要的结果,代码如下:
代码如下:
function test($name="小李",$age="23"){   
echo $name."  ".$age;   
}   
test();   
echo "<br/>";   
test("a");   
echo "<br/>";   
test("a","b");

3、利用__call($name,$arg) 函数进行处理,代码如下:
代码如下:
<?PHP 
class OverLoad{ 
function __call($name,$args) 

  if($name=='overloadFun') 
  { 
   switch(count($args)) 
   { 
    case 0: $this->overloadFun0();break; 
    case 1: $this->overloadFun1($args[0]); break; 
    case 2: $this->overloadFun2($args[0],$args[1]); break; 
    default: //do something 
      break; 
   } 
  } 

    
function overloadFun0() 

  echo 0; 

function overloadFun1($var1) 

  echo $var1; 
PHP实例

function overloadFun2($var1,$var2) 

   
  echo $var1+$var2; 
   } 
}   
$test=new OverLoad(); 
$test->overloadFun()."<br />".  
$test->overloadFun(1)."<br />".  
$test->overloadFun(1,2)."<br />"; 
?>PHP实例


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

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

小编培训学院每天发布《PHP实战:PHP利用func_get_args和func_num_args函数实现函数重载实例》等实战技能,PHP、MysqL、LINUX、APP、JS,CSS全面培养人才。

func_get_arg, func_get_args 和 func_num_args 函数

func_get_arg, func_get_args 和 func_num_args 函数

func_get_args () 在 php71 与 php56 的区别

func_get_args () 在 php71 与 php56 的区别

func_get_args () 获取函数的所有参数,返回一个数组

官方:http://www.php.net/manual/en/function.func-get-args.php

但是此函数在 php7 与 php56 中,有些使用时是有区别的,就是调用此函数前,如果参数被修改了,返回值是有区别的。

测试函数:

<?php

function foo($x) {
      $x++;
      var_dump(func_get_args());
  }
  foo(1);

在 php56 下测试

# php56 aa.php 
array(1) {
  [0]=>
  int(1)

返回为 1,没有受函数内部修改影响。
在 php71 下测试

# php71 aa.php 
array(1) {
  [0]=>
  int(2)
}

返回值为 2,因为 $x++ 而修改了 func_get_args 的返回值,类似的函数 func_get_arg () 同样存在这个问题,所以使用时以及 php 升级时需要注意。

原文:https://blog.csdn.net/u010889390/article/details/81667548

本文同步分享在 博客 “lxw1844912514”(CSDN)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与 “OSC 源创计划”,欢迎正在阅读的你也加入,一起分享。

func_get_args() func_get_arg(offset) func_num_args(); 函数使用

func_get_args() func_get_arg(offset) func_num_args(); 函数使用

func_get_args是获取方法中参数的数组,返回的是一个数组,与func_num_args搭配使用;

func_get_arg是获取指定偏移量的参数


func_num_args统计参数个数


func_num_args一般写在方法中,用于计数;
使用方法如下:
[php]
function myargs($a=''para1'',$b=''para2''){ 
    $numargs = func_num_args(); 
     echo "Number of parameters : $numargs
\n"; 
     if ($numargs >= 2) { 
         echo "Second parameters is: " . func_get_arg(1) . "
\n"; 
     } 
    $arg_list = func_get_args(); 
     for ($i = 0; $i          echo "parameters $i is: " . $arg_list[$i] . "
\n"; 
     } 

 
myargs(11, 22);    
将会输出: 
Number of parameters : 2 
Second parameters is: 22 
parameters 0 is: 11 
parameters 1 is: 22 

function myargs($a=''para1'',$b=''para2''){
    $numargs = func_num_args();
     echo "Number of parameters : $numargs
\n";
     if ($numargs >= 2) {
         echo "Second parameters is: " . func_get_arg(1) . "
\n";
     }
    $arg_list = func_get_args();
     for ($i = 0; $i          echo "parameters $i is: " . $arg_list[$i] . "
\n";
     }
}

myargs(11, 22);  
将会输出:
Number of parameters : 2
Second parameters is: 22
parameters 0 is: 11
parameters 1 is: 22

 

func_get_args() func_get_arg(offset) func_num_args(); 函数使用_PHP教程

func_get_args() func_get_arg(offset) func_num_args(); 函数使用_PHP教程

func_get_args是获取方法中参数的数组,返回的是一个数组,与func_num_args搭配使用;

func_get_arg是获取指定偏移量的参数


func_num_args统计参数个数


func_num_args一般写在方法中,用于计数;
使用方法如下:
[php]
function myargs($a=''para1'',$b=''para2''){ 
    $numargs = func_num_args(); 
     echo "Number of parameters : $numargs
\n"; 
     if ($numargs >= 2) { 
         echo "Second parameters is: " . func_get_arg(1) . "
\n"; 
     } 
    $arg_list = func_get_args(); 
     for ($i = 0; $i          echo "parameters $i is: " . $arg_list[$i] . "
\n"; 
     } 

 
myargs(11, 22);    
将会输出: 
Number of parameters : 2 
Second parameters is: 22 
parameters 0 is: 11 
parameters 1 is: 22 

function myargs($a=''para1'',$b=''para2''){
    $numargs = func_num_args();
     echo "Number of parameters : $numargs
\n";
     if ($numargs >= 2) {
         echo "Second parameters is: " . func_get_arg(1) . "
\n";
     }
    $arg_list = func_get_args();
     for ($i = 0; $i          echo "parameters $i is: " . $arg_list[$i] . "
\n";
     }
}

myargs(11, 22);  
将会输出:
Number of parameters : 2
Second parameters is: 22
parameters 0 is: 11
parameters 1 is: 22

 

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/477547.htmlTechArticlefunc_get_args是获取方法中参数的数组,返回的是一个数组,与func_num_args搭配使用; func_get_arg是获取指定偏移量的参数 func_num_args统计参数个...

我们今天的关于PHP利用func_get_args和func_num_args函数实现函数重载实例php func_get_args的分享已经告一段落,感谢您的关注,如果您想了解更多关于func_get_arg, func_get_args 和 func_num_args 函数、func_get_args () 在 php71 与 php56 的区别、func_get_args() func_get_arg(offset) func_num_args(); 函数使用、func_get_args() func_get_arg(offset) func_num_args(); 函数使用_PHP教程的相关信息,请在本站查询。

本文标签:

上一篇PHP之sprintf函数用法详解(php sprintf函数的用法)

下一篇php实现的ping端口函数实例(ping接口php源码)