2011-03-26 94 views
23

如何將可選參數傳遞給PHP函數。例如在PHP函數中傳遞可選參數

function test($required, $optional){..} 

因此,我應該可以通過傳遞一個參數或兩者都可以調用該函數。例如:

test($required, $optional) 
test($required); 

謝謝。

+0

哇這個問題幾乎每一個答案都說完全一樣的東西。我不知道你是如何設法挑選的,因爲它們都是正確的。 :) – edwardtyl 2015-07-22 18:51:36

回答

40

試試這個:

function test($required, $optional = NULL){..} 

,那麼你可以調用

test($required, $optional) 

$optional

test($required); 
+0

你的意思是當我通過'$ required'AND'$ optional'的值時,這個'$ optional = NULL'會被覆蓋?將與'$ optinal'數據完美配合? – Neocortex 2014-12-16 06:32:01

2

只需設置在你的函數前的默認參數。

function test($required, $optional = null, ...) 

現在你可以調用你的函數類似這樣的

test($required, $optional) 
test($required); 
0

閱讀本http://php.net/manual/en/function.func-get-args.php

不要傳遞任何參數decalare功能 當像下面

function myMin() { 
     $list = func_get_args(); 
     $min = NULL; 
     if (count($list)>0) $min = $list[0]; 
     for ($i=1; $i<count($list); $i++) { 
     if ($min > $list[$i]) $min = $list[$i]; 
     } 
     return $min; 
    } 

    print("\n Calling a function that uses func_get_args():\n"); 
    print(" ".myMin()."\n"); 
    print(" ".myMin(5)."\n"); 
    print(" ".myMin(5, 6, 2)."\n"); 
    print(" ".myMin(5, 6, 2, 9, 5, 1, 4, 1, 3)."\n"); 
?> 
7

1)可以定義默認值參數,像這樣:

function test($required, $optional = false) {} 

2)您可以使用func_num_args()獲取參數的數量,func_get_arg($ n)獲得第n個參數或func_get_args()獲取所有參數的數組。

你可以找到一個很好的總結在這裏:Function arguments

+0

+1提到另一種方式 – 2011-03-26 11:16:16

+0

是+1提到另一種方式。它肯定勝過整個頁面的重複答案。 – 2014-06-17 16:54:14

4

你也可以這樣做:

function test($required, $optional = ''){ 
    #code 
} 

打電話時:

test($required) 

或:

test($required, $optional = 'something')