PHP關於函數的參數問題


可能是自己以前寫程序太規范了,今天發現個PHP函數參數個數的問題,定義的函數有三個參數,但是使用函數的時候竟然傳了四個參數,更意外的是程序運行沒有錯誤,甚至沒有警告。於是依靠搜索引擎和PHP文檔仔細查看了下。PHP內置了幾個關於函數參數的函數。

func_get_arg(int $arg_num)//獲取傳遞的第 $arg_num 個參數,從0開始索引。

func_get_args()//獲取傳遞參數的列表,以二維數組返回。

func_num_args()//返回傳遞給參數的個數

因為有了上面三個函數,即時定義函數的時候沒有定義參數列表。實際調用函數的時候也不會出錯,可以通過上面的三個函數接收參數。

function myfun($name, $value='') {
    $args = func_get_args();
    var_dump($args);
    var_dump(func_get_arg(0));
    echo 'Number of arguments is:', func_num_args(), '<br />';
    echo 'I am function<br />';
}

myfun(12, 22, 36);

輸出結果為:
E:\website\www\info.php:13:
array (size=3)
  0 => int 12
  1 => int 11
  2 => int 323
E:\website\www\info.php:14:int 12
Number of arguments is:3
I am function

 

盡管如此,還是推薦按更標准的格式定義函數,讓使用函數的用戶明白各個參數的含義,傳遞參數的數據類型。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM