【发布时间】:2011-11-21 12:18:42
【问题描述】:
我需要使用大量可能的输入来测试某个函数的行为。假设函数签名如下:
foo ($a)
foo ($a, $b, $c)
说$a 可以有以下值:1、2。
说$b可以有以下值:'hello','world'。
说$c可以有以下值:TRUE,FALSE
如何编写返回以下组合的函数:
1
2
1,hello,TRUE
1,hello,FALSE
2,hello,TRUE
2,hello,FALSE
1,world,TRUE
1,world,FALSE
...
请注意,函数参数的数量是未知的,它们的可能值也是未知的。
【问题讨论】:
-
这与递归无关。如果您想要的只是可能的参数列表的组合,请搜索“排列”。
-
“请注意,函数参数的数量是未知的,它们的可能值也是未知的。” - 不,您似乎明确列出了三个可能的参数,其中两个是可选,所有这些都有两个可能的值。对我来说似乎不是很陌生。
-
@glowcoder 是的,通过
func_num_args()、func_get_arg()或只是func_get_args()。 -
你有递归问题,你说?你应该看看这个问题:stackoverflow.com/questions/7492846/php-recursive-problem