将null传递给PHP中的构造函数args是不好的做法?

时间:2016-02-25 14:04:48

标签: php constructor

我只是想知道将null传递给构造函数args以管理非覆盖是否是一种不好的做法?

例如:

class Car
{
    private $brand;
    private $color;

    public function __construct($brand, $color=null) 
    {
        // ...
    }
}

1 个答案:

答案 0 :(得分:1)

不是。 import subprocess subprocess.call(["aws", "--region", "us-east-1", "ec2", "modify-instance-attribute", "--instance-id", "i-782cc9fb", "--groups", "sg-47fb243f"]) 在安全性方面在PHP中是完全有效的(像空字符串或null之类的东西或类似的东西更有效地失败)。

我认为这里正确的问题是“给构造函数的参数赋予默认值是不好的”,但对于那个问题,它也不是。

我的理由是,有时你想暗示在大多数情况下会使用的默认行为,而在某些情况下,比如5%的情况,你需要以某种方式改变对象的行为,你想要成为能够在构造函数中告诉我们存在这种差异。

有时,特别是如果参数会对对象进行重大更改,或者如果有多个值都被广泛使用,则使用方法设置它可能更有意义。在您的情况下,该方法类似于"0",默认情况下隐含为$car->color("foo");