我有一个函数返回一个整数,但是我想对它进行扩展以添加一个新的param。但是,使用这个参数,函数必须返回一个数组。
我认为这是不好的做法,也只是复制粘贴整个功能4-5多行。
发布于 2011-08-22 18:18:21
如果可能的话,我会从另一个函数中调用一个函数。
function getSingle($arg)
{
// Do whatever it is your function should do...
return 1;
}
function getMultiple($args)
{
$out = array();
foreach ($args as $arg) {
$out[] = getSingle($arg);
}
return $out;
}对于您所想到的函数,可能不可能这样做,但它可能是一个很好的选择。
另外,由于函数是相互关联的,我会将它们写成类方法,以便将它们“分组”在一起。
以Users为例,我可能需要一个函数来获得单个用户,另一个函数可以获得多个用户。在一个类中收集这些方法是有意义的:
class Users
{
public function getUser($id){}
public function getUsers(array $id = null){}
}发布于 2011-08-22 18:17:35
在我看来,这是一个错误的实践,因为它可能会导致使用它的问题,因为您并不总是知道从函数中得到int或数组。
我的建议
总是返回一个数组(即使它是一个项目长),并有一个更通用的外观功能,这是容易处理的。
发布于 2011-08-22 18:18:31
在PHP中,我会说“一个函数一种输出类型”。( FALSE值除外,它在PHP中具有特殊意义)。如果PHP支持重载,这可能是不同的,但它没有。但是这里有一个问题,为什么不简单地有一个这两个函数包装的函数呢?
function my_wrapped_function($param1, array $param2)
{
return $param1 * count($param2);
}
function get_array_from_wrapped( $param1, array $param2 )
{
return array( $param1, my_wrapped_function($param1, $param2));
}
function get_int_from_wrapped( $param1, array $param2 )
{
return my_wrapped_function($param1, $param2);
}https://stackoverflow.com/questions/7151642
复制相似问题