具有无限数量参数的 PHP 函数
如何编写可以接受无限数量参数的函数?
我试图做的是在包装以下内容的类中创建一个函数:
$stmt->bind_param('sssd', $code, $language, $official, $percent);
如何编写可以接受无限数量参数的函数?
我试图做的是在包装以下内容的类中创建一个函数:
$stmt->bind_param('sssd', $code, $language, $official, $percent);
你有没有看过func_get_args,func_get_arg和func_num_args
例如:
function foo(){
if ( func_num_args() > 0 ){
var_dump(func_get_args());
}
}
艺术
function bind_param(){
if ( func_num_args() <= 1 ){
return false; //not enough args
}
$format = func_get_arg(0)
$args = array_slice(func_get_args(), 1)
//etc
}
关于
Ewan Todds的评论:
我对你创建包装器的基本API一无所知,但另一种选择可能是对链接函数做一些事情,这样你得到的接口看起来像这样:
$var->bind()->bindString($code)
->bindString($language)
->bindString($official)
->bindDecimal($percent);
我更喜欢使用func_get_args因为代码可能更具可读性,更重要的是,由于缺乏格式变量,不太可能导致错误。
以前你应该使用,但在php 5.6中,你可以使用...运算符。func_get_args()
例如,您可以编写一个函数,该函数返回所有数字的总和,并发送到该函数:
function bind_param(...$params){
var_dump($params);
}
您的实际上是所有元素的数组。params