在 PHP 中使用“func_get_arg”的好例子是什么?
2022-08-30 17:42:02
我刚刚发现PHP中有一个调用的函数,它使开发人员能够使用变体样式来获取参数。它似乎非常有用,因为参数的数量现在可以是任意的,但是我想不出任何使用它的好例子。func_get_arg
使用这个函数来充分利用其多态特性的例子有哪些?
我刚刚发现PHP中有一个调用的函数,它使开发人员能够使用变体样式来获取参数。它似乎非常有用,因为参数的数量现在可以是任意的,但是我想不出任何使用它的好例子。func_get_arg
使用这个函数来充分利用其多态特性的例子有哪些?
我通常使用如果想要多个参数,则更容易使用。func_get_args()
例如,要重新创建 PHP 的 .max()
function max() {
$max = -PHP_INT_MAX;
foreach(func_get_args() as $arg) {
if ($arg > $max) {
$max = $arg;
}
}
return $max;
}
密码键盘。
现在你可以做,得到.echo max(1,5,7,3)
7
从 php5.6 开始,不再有用例;它的功能已被使用语法的可变参数函数所取代:func_get_arg
...
/**
* @param array $arguments
*/
public function poit(...$arguments)
{
foreach($arguments as $argument) {
...
}
}
如果存在最后重载的方法,这尤其有用;人们确实需要过滤掉第一个参数,如一个例子所示:
旧式使用:func_get_arg
function foo($a, $b) {
$c = array();
if (func_num_args() > 2) {
for($i = 0; $i < func_num_args()-2; $i++) {
$c[] = func_get_arg($i+2);
}
}
var_dump($a, $b, $c)
// Do something
}
foo('a', 'b', 'c', 'd');
较新的可变参数样式;
function foo($a, $b, …$c) {
var_dump($a, $b, $c);
// Do something
}
foo('a', 'b', 'c', 'd');
两个 foo 产生相同的输出,其中一个更易于编写。