• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

可以让php随意传递参数的函数func_get_args和func_num_args

PHP 水墨上仙 1645次浏览

可以让php随意传递参数的函数func_get_args和func_num_args

php用户自定义的函数大部分是用来处理数据的,既然是处理数据那么就必然会有参数传入函数,一般的形式是这样的



// function with 2 optional arguments
function foo($arg1 = '', $arg2 = '') {
    echo "arg1: $arg1\n";    
    echo "arg2: $arg2\n";
 }
foo('hello','world');  /* prints:  arg1: hello  arg2: world  */
foo();  /* prints:  arg1:  arg2:  */

对于上面的形式,我想你可能觉得是小儿科了,你可能知道PHP允许你定义带有任意参数的函数。不过事实上还有一种完全允许任意数量函数参数的方法。那就是今天我要说的func_get_args函数。

func_get_args()—返回的是一个数组,这个数组内的每一项都是函数的一个参数。根据php手册我们给出函数的用法格式。

array&nbspfunc_get_args&nbsp(&nbspvoid&nbsp)
如果只是在这里笼统的阐述,可能大家不能够真正的了解这个函数,那么就让我们通过事例来看下这个函数的用法。


// yes, the argument list can be empty 
function foo() {     // returns an array of all passed arguments  
 $args = func_get_args();    
 foreach ($args as $k => $v) { 
  echo “arg”.($k+1).”: $v\n”; 
  }   
}   
foo();  /* 没用任何输出*/   
foo(‘hello’);  /* 输出  arg1: hello  */  
foo(‘hello’, ‘world’, ‘again’);  /*输出 arg1: hello  arg2: world  arg3: again  */   

看到了把,这个函数可以把你传入的所有参数全部都放在一个数组中,然后再输出。这样对我们以后编写php程序是不是又简单了许多呢?

既然说到了func_get_args函数,那么我们就不能不提下func_num_args函数和func_get_arg函数了

func_nums_args——统计传入函数参数的个数

func_get_arg——根据索引取得某一个参数,这里的索引数传入函数的参数

我们就以php手册上的例子来看吧



<?

function foo()
{
    $numargs = func_num_args();
    echo “Number of arguments: $numargs\n“;
}

foo(1, 2, 3);    // Prints ‘Number of arguments: 3′
?>

上面的例子很明白的给我们展示了func_num_args函数就是活的传入函数的参数



<?php
function foo()
{
     $numargs = func_num_args();
     echo "Number of arguments: $numargs<br />\n";
     if ($numargs >= 2) {
     echo "Second argument is: " . func_get_arg(1) . "<br />\n";
     }
}

foo (1, 2, 3);
?>

上面的例子中func_get_arg(1)就是获取函数的第二个参数。好了,我们看下这三个函数的综合实例吧,这样我们就可以把这三个函数掌握了。



<?php
function foo()
{
    $numargs = func_num_args();//得到参数的个数
    echo "Number of arguments: $numargs<br />\n";
    if ($numargs >= 2) {
        echo "Second argument is: " . func_get_arg(1) . "<br />\n";
    }
    $arg_list = func_get_args();
    for ($i = 0; $i < $numargs; $i++) {
        echo "Argument $i is: " . $arg_list[$i] . "<br />\n";
    }
}

foo(1, 2, 3);
?>

func_get_arg()函数func_num_args函数以及func_get_args函数,在我们平时编程的时候是很有用的,如果我们会巧妙的运用可能会让我们意向不到,发现这些函数的作用是那么大。


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明可以让php随意传递参数的函数func_get_args和func_num_args
喜欢 (0)
加载中……