【发布时间】:2014-04-03 08:35:31
【问题描述】:
我想创建一个可以在参数中接受多个、可选和附加值的函数。
比如我想上课
class Pizza {
public function addToppings($additional_toppings)
{
}
}
我可以在我的程序中用作
$pizza1=new Pizza;
$pizza1->addToppings(SALAMI + HAM + BACON + ADDITIONAL_CHEESE);
$pizza2=new Pizza;
$pizza2->addToppings(HAM + PINEAPPLE + SAUSAGE);
浇头可以是任意组合,并且主题的选择属于预定义的集合。
如何实现 addToppings 函数?
我似乎记得在 PHP 中看到过类似的东西,但我不记得是哪个。
另一方面,您会推荐关联数组吗?
$pizza1->addToppings(array('salami','ham','bacon','additional_cheese'));
$pizza2->addToppings(array('ham','pineapple','sausage'));
这个选项似乎更简单,但我想知道你会选择哪些想法以及为什么。谢谢
编辑:
我现在记得有一个这样的 PHP 实现。
error_reporting 函数允许指定多个相加的error level constants 作为参数,例如:
error_reporting(E_ERROR | E_WARNING | E_PARSE);
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
那么是否只允许 error_reporting() 的实现,因为它是 PHP 的一部分,但不能以其他方式重新创建?
【问题讨论】:
-
唯一的方法确实是一个数组。 PHP 没有像 Java 或 Ruby 这样的无限参数输入。编辑:好的,实际上有一种方法;
func_get_args()。但是,关联数组似乎仍然是更好的选择 -
谢谢格本。但是为什么它必须是关联的而不是像我的示例那样简单的索引数组?
-
error_reporting函数仍然只接受一个参数,我已经更新了我的答案来解释更多。 -
可以是索引数组。我输入的时候只是在想简单的字符串。
标签: php function optional-parameters