首頁  >  文章  >  後端開發  >  func_get_args和func_num_args詳解

func_get_args和func_num_args詳解

高洛峰
高洛峰原創
2017-02-09 09:37:131393瀏覽

func_get_args()—傳回的是一個數組,這個數組內的每一項都是函數的一個參數。根據php手冊我們給出函數的用法格式。

array func_get_args ( void )

如果只是在這裡籠統的闡述,可能大家不能夠真正的了解這個函數,那麼就讓我們透過事例來看下這個函數的用法。

function foo() {     
 $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);
    //Prints
    //Number of arguments: 3
    //Second argument is: 2
    ?>

上面的例子中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);
/*Number of arguments: 3
Second argument is: 2
Argument 0 is: 1
Argument 1 is: 2
Argument 2 is: 3*/
?>

func_get_args()—傳回的是一個數組,這個數組內的每一項都是函數的一個參數。根據php手冊我們給出函數的用法格式。

array func_get_args ( void )

如果只是在這裡籠統的闡述,可能大家不能夠真正的了解這個函數,那麼就讓我們透過事例來看下這個函數的用法。

function foo() {     
 $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);
    //Prints
    //Number of arguments: 3
    //Second argument is: 2
    ?>

上面的例子中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);
/*Number of arguments: 3
Second argument is: 2
Argument 0 is: 1
Argument 1 is: 2
Argument 2 is: 3*/
?>

 更多func_get_args和func_num_args詳情相關文章請關注PHP中文網!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn