php什么时候使用数组作为参数/属性

时间:2013-07-03 02:49:25

标签: php class format

对于以下两个类:

我应该使用数组作为参数还是逐个使用?

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初学者并且没有任何工作经验,我想听听你的建议哪种方式是最常用的,或者其他编码人员很容易阅读

谢谢!

2 个答案:

答案 0 :(得分:2)

你永远不需要函数的那么多参数......你可以使用一个选项数组,或者你可以只使用setter方法来设置属性。我很难相信所有这些都需要创建一个对象实例。

至于类属性,取决于它们的使用性质。一般来说,单独的属性更好,因为它使界面更容易阅读,并有助于IDE代码提示。但在这种情况下,尤其是填充,我认为在第二个例子中使用数组更有意义。

答案 1 :(得分:1)

这将是完全主观的;但是,我会把两分钱投入到谈话中。我的经验法则是,如果有多于4个参数,则尝试将它们捆绑在一起,如果它们有意义的话。因此,示例的填充和颜色与数组一起很好。

此外,尝试以一种方式创建数组,用户不必担心每个元素所在的索引,例如使用关联数组。