func_get_args和func_num_args詳解

func_get_args()—返回的是一個數組,這個數組內的每一項都是函數的一個參數。根據php手冊咱們給出函數的用法格式。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——統計傳入函數參數的個數 code

func_get_arg——根據索引取得某一個參數,這裏的索引數傳入函數的參數 索引

咱們就以php手冊上的例子來看吧get

<?
 
function foo()
{
    $numargs = func_num_args();
    echo 「Number of arguments: $numargs\n「;
}
 
foo(1, 2, 3);    // Prints ‘Number of arguments: 3′
?>

上面的例子很明白的給咱們展現了func_num_args函數就是活的傳入函數的參數io

<?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)就是獲取函數的第二個參數。好了,咱們看下這三個函數的綜合實例吧,這樣咱們就能夠把這三個函數掌握了。function

<?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*/
?>
相關文章
相關標籤/搜索