Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在5.6版之前的PHP中声明抽象变量函数?_Php - Fatal编程技术网

如何在5.6版之前的PHP中声明抽象变量函数?

如何在5.6版之前的PHP中声明抽象变量函数?,php,Php,在PHP版本5.6之前的PHP中声明抽象变量函数是否存在变通方法?从PHP版本5.6开始,有一个…操作符,其工作原理如下 抽象保护函数myVariadicFunction(…$anyNumberOfArgs) 实现者现在可以接受任意数量的参数。然而,在5.6版本之前,似乎只有一种方法,看起来像这样 抽象保护函数myvariadicsfunction($arrayOfArgs) 其中,$arrayOfArgs可以为空,也可以是填充了任意数量参数的数组 如果有其他更优雅的方式,请让我知道 在PHP5

在PHP版本5.6之前的PHP中声明抽象变量函数是否存在变通方法?从PHP版本5.6开始,有一个
操作符,其工作原理如下

抽象保护函数myVariadicFunction(…$anyNumberOfArgs)

实现者现在可以接受任意数量的参数。然而,在5.6版本之前,似乎只有一种方法,看起来像这样

抽象保护函数myvariadicsfunction($arrayOfArgs)

其中,
$arrayOfArgs
可以为空,也可以是填充了任意数量参数的数组


如果有其他更优雅的方式,请让我知道

在PHP5.3中,您可以使用函数,它分别返回一个包含函数参数的数组和一个包含参数数量的数字


在较旧的PHP版本中执行此操作的方法是使用
func\u get\u args()

PHP将静默地接受未声明的参数;您可以使用
func\u get\u args()
访问它们,如下所示:

function myFunc() {
    var_dump(func_get_args());
}

myFunc('foo', 'bar');
输出将显示您有一个包含('foo','bar')的数组

这提供了一个相当好的变量函数的等价物

这种方法的缺点(即引入适当的可变函数的原因)如下:

function myFunc() {
    var_dump(func_get_args());
}

myFunc('foo', 'bar');
  • IDE无法解析函数的参数列表
  • 无法使用类型提示来指定传入的变量的类型
  • 与实际变量相比,代码更多,可读性更低
但尽管如此,基本功能仍然存在