你知道 PHP 的 isset()
是如何接受多个(也没有限制)参数的吗?
我能做到:
isset($var1,$var2,$var3,$var4,$var5,$var6,$var7,$var8,$var9,$var10,$var11);
//etc etc
我如何能够在我自己的函数中做到这一点?我将如何处理传递的无穷大参数?
他们是怎么做到的?
最佳答案
func_get_args
会做你想做的事:
function infinite_parameters() {
foreach (func_get_args() as $param) {
echo "Param is $param" . PHP_EOL;
}
}
您还可以使用 func_get_arg
获取特定参数(它是零索引):
function infinite_parameters() {
echo func_get_arg(2);
}
但是要小心检查你是否有那个参数:
function infinite_parameters() {
if (func_num_args() < 3) {
throw new BadFunctionCallException("Not enough parameters!");
}
}
您甚至可以将 func_*_arg
和常规参数混合在一起:
function foo($param1, $param2) {
echo $param1; // Works as normal
echo func_get_arg(0); // Gets $param1
if (func_num_args() >= 3) {
echo func_get_arg(2);
}
}
但在使用它之前,想一想你是否真的想要有不确定的参数。一个数组还不够吗?
关于php - 如何在函数中使用无限参数(如 PHP isset()),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12165002/