getAllForms($data=null)
多個可選參數
getAllForms() and getAllForms("data")
這將工作。但我想在這樣的函數中做兩個可選參數:
getAllForms($arg1=null,$arg2=null)
getAllForms() and getAllForms("data")
我該如何使這成爲可能。快速回復更值得讚賞。由於
getAllForms($data=null)
多個可選參數
getAllForms() and getAllForms("data")
這將工作。但我想在這樣的函數中做兩個可選參數:
getAllForms($arg1=null,$arg2=null)
getAllForms() and getAllForms("data")
我該如何使這成爲可能。快速回復更值得讚賞。由於
您可以嘗試
function getAllForms() {
extract(func_get_args(), EXTR_PREFIX_ALL, "data");
}
getAllForms();
getAllForms("a"); // $data_0 = a ;
getAllForms("a", "b"); // $data_0 = a $data_1 = b ;
getAllForms(nul, null, "c"); // $data_0 = null $data_1 = null, $data_2 = c ;
試試這個:
getAllForms($data=null,$data2=null)
,並調用它在此模式下:
getAllForms()
getAllForms("data")
getAllForms("data","data2")
的第二個參數必須是不同的名字就第一
您已經描述瞭如何將做到這一點:
function getAllForms($arg1 = null, $arg2 = null)
除了每個變量名(包括第二個)都必須不同。
您也可以嘗試使用func_get_arg
,您可以將n
個參數傳遞給函數。
http://php.net/manual/en/function.func-get-args.php
例
function foo(){
$arg_list = func_get_args();
for ($i = 0; $i < $numargs; $i++) {
echo "Argument $i is: " . $arg_list[$i] . "<br />\n";
}
}
foo(1, 2, 3);
<? php
function getAllForms($data1 = null, $data2 = null)
{
if ($data1 != null)
{
// do something with $data1
}
if ($data2 != null)
{
// do something with $data2
}
}
?>
getAllForms();
getAllForms("a");
getAllForms(null, "b");
getAllForms("a", "b");
或
<? php
function getAllForms($data = null)
{
if (is_array($data))
{
foreach($data as $item)
{
getAllForms($item);
}
}
else
{
if ($data != null)
{
// do something with data.
}
}
}
getAllForms();
getAllForms("a");
getAllForms(array("a"));
getAllForms(array("a", "b"));
?>
如果您想要有多個「數據」參數,請使用數組。否則將它們命名爲'$ data1'和'$ data2'。 –
是的大安我使用數組data1和data2是數組。問題是我可以只設置一個arg可選(null) –