【问题标题】:Setting defaults for properties in a class为类中的属性设置默认值
【发布时间】:2015-03-26 17:56:58
【问题描述】:

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

我将如何以正确的方式做到这一点。这是我需要实现的示例

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;

【问题讨论】:

  • 好的,那到底是什么问题呢?您的编辑已经显示了可能的答案...
  • 感谢您的回复。是的,只是我需要知道,这是更正确的方法。从答案看来我应该选择第一个选项

标签: php class oop


【解决方案1】:

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

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

【讨论】:

  • 感谢您的回答。感谢你的帮助。享受:-)
【解决方案2】:

也许你需要这样的东西

  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;
  }


}

【讨论】:

  • 感谢您的回答,但您被另一个人秒杀,接受高于您的回答是一种很好的体育精神。不幸的是,我还不能投票给你,因为我需要 15 声望才能这样做。谢谢你的帮助,真的很感激
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-10-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多