我怎麼會去約在PHP編寫一個函數與未知數量的參數,例如Php寫入一個未知參數的函數?
function echoData (parameter1, parameter2,) {
//do something
}
但是,當你調用該函數可以使用:
echoData('hello', 'hello2', 'hello3', 'hello'4);
讓更多的參數由於參數的數量未知,因此被髮送。
我怎麼會去約在PHP編寫一個函數與未知數量的參數,例如Php寫入一個未知參數的函數?
function echoData (parameter1, parameter2,) {
//do something
}
但是,當你調用該函數可以使用:
echoData('hello', 'hello2', 'hello3', 'hello'4);
讓更多的參數由於參數的數量未知,因此被髮送。
function echoData(){
$args = func_get_args();
}
要知道,當你可以做到這一點,你不應該在函數聲明定義任何參數,如果你打算使用func_get_args() - 僅僅是因爲它得到,如果非常混亂/當任何的定義的參數被省略
類似的功能有關的參數
請注意,雖然你可以做到這一點,但你如果你打算使用'func_get_args()',就不應該在函數聲明中定義任何參數,因爲如果/當任何定義的參數被省略時,它變得非常混亂。 – DaveRandom
@Dave:很好。我會將其添加到我的答案 – genesis
使用func_get_args()來檢索像所有的參數數組:
$args = func_get_args();
然後,您可以使用數組或迭代它,無論西裝你的用例最好。
您也可以使用數組:
<?php
function example($args = array())
{
if (isset ($args["arg1"]))
echo "Arg1!";
}
example(array("arg1"=>"val", "arg2"=>"val"));
只是對於那些誰發現這個線程在谷歌。
In PHP 5.6 and above you can use ...
指定未知數量的參數:
function sum(...$numbers) {
$acc = 0;
foreach ($numbers as $n) {
$acc += $n;
}
return $acc;
}
echo sum(1, 2, 3, 4); // 10
$numbers
是參數數組。
可能重複[PHP函數與無限數量的參數](http://stackoverflow.com/questions/1577383/php-function-with-limited-number-of-parameters)和[PHP函數可以接受無限數量的參數?](http://stackoverflow.com/questions/3078454/can-a-php-function-accept-an-unlimited-number-of-parameters) –