PHP有这样的功能吗?
答案 0 :(得分:5)
您可以使用以下功能:
实施例:
function my_sum() { // <--- No parameters! :D
$total = func_num_args();
$numbers = func_get_args();
if ($total < 1) {
trigger_error('Less than one number :(');
return 0;
} else {
// Calculate the sum
$sum = array_sum($numbers);
return ($sum / $total);
}
}
// Usage:
echo my_sum(1, 2, 5, 109, 10231);
?>
答案 1 :(得分:0)
使用功能func_get_args()
。它将为您提供传递给该函数的所有参数的数组。
答案 2 :(得分:0)
当然,创建一个没有参数的函数,用你想要的任何东西调用它,并在函数内使用func_get_args()来获得实际的参数。
答案 3 :(得分:0)
或许更好的方法是传递一个参数,这实际上是一个参数数组。 例如:
function my_sum($data){
$sum = 0;
foreach($sum as $value){
$sum+=$value;
}
return $sum;
}
echo my_sum(array(1, 2, 5, 109, 10231));
我经常使用关联数组将参数传递给函数。如果提交的参数是可选的,或者本质上是变化的,那么这非常有用。 例如:
$data = array(
'date' => '10/4/06',
'name' => 'biggles',
'occupation' => 'pilot'
);
add_person($data);
这也可以更好地检测错误。如果你有很多参数,很可能会以错误的顺序排列它们。另外,如果扩展或修改teh函数,则更有可能继续使用现有代码。