为类中的属性设置默认值


Setting defaults for properties in a class

我需要编写一个类,如果需要,用户可以在其中设置自己的值。我需要为属性设置默认值。

我该怎么做才是正确的。下面是我需要实现的一个例子

class Test
{
    protected $var1;
    protected $var2;
    public function __construct($var1, $var2)
    {
        $this->var1 = $var1;
        $this->var2 = $var2;
    }
    public function setVar1($var1)
    {}
    public function getVar1()
    {}
    //etc
}

$var1应该有一个默认值true,而$var2应该是一个文本字符串,比如foo bar。用户可以将自己的新值设置为$var1$var2

我如何将这些代码编码到上面的示例中

以下是我的想法

  • 在构造函数中定义值,如public function __construct($var1 = true, $var2 = 'foo bar')

  • 或在属性声明中设置值,如protected $var1 = true;

您可以为方法参数设置默认值。请注意,当您调用方法时,这也使它们成为可选的

public function __construct($var1 = true, $var2 = 'foo bar')

也许你需要这样的

  class Test
  {
  protected $var1;
  protected $var2;
  public function __construct($var1=true, $var2='foo bar')
  {
    $this->var1 = $var1;
    $this->var2 = $var2;
  }
  public function setVar1($var1)
  {
     $this->var1=$var1;
  }
  public function getVar1()
  {
     return $this->var1;
  }

}