对于以下两个类:
我应该使用数组作为参数还是逐个使用?
class image {
public function __construct(array $color, array $padding) {
...
}
}
class image {
public function __construct($red, $green, $blue, $paddingtop, $paddingright, $paddingbottom, $paddingleft) {
...
}
}
同样适用于类属性:
class image {
protected $paddingtop;
protected $paddingright;
protected $paddingbottom;
protected $paddingleft;
protected $colorred;
protected $colorgreen;
protected $colorblue;
}
class image {
protected $padding = array('top' => ..., 'right' => ..., 'bottom' => ..., 'left' => ...);
protected $color = array('red' => ..., 'green' => ..., 'blue' => ...);
}
将它们视为数组还是单个变量更好?
也许这个问题没有固定的答案,但我只是一个php初学者并且没有任何工作经验,我想听听你的建议哪种方式是最常用的,或者其他编码人员很容易阅读
谢谢!
答案 0 :(得分:2)
你永远不需要函数的那么多参数......你可以使用一个选项数组,或者你可以只使用setter方法来设置属性。我很难相信所有这些都需要创建一个对象实例。
至于类属性,取决于它们的使用性质。一般来说,单独的属性更好,因为它使界面更容易阅读,并有助于IDE代码提示。但在这种情况下,尤其是填充,我认为在第二个例子中使用数组更有意义。
答案 1 :(得分:1)
这将是完全主观的;但是,我会把两分钱投入到谈话中。我的经验法则是,如果有多于4个参数,则尝试将它们捆绑在一起,如果它们有意义的话。因此,示例的填充和颜色与数组一起很好。
此外,尝试以一种方式创建数组,用户不必担心每个元素所在的索引,例如使用关联数组。