代码之家  ›  专栏  ›  技术社区  ›  UnknownProgrammer

PHP:getter和setter[重复]

  •  -3
  • UnknownProgrammer  · 技术社区  · 6 年前

    最近,我正在建立一个symfony应用程序,我必须在其中创建一些实体。为了创建这些实体,我使用symfony控制台并运行 make:entity 剧本

    然后问我,是否要添加一些字段。当然,我只是用这个函数添加了我的属性,因为它很容易使用。然后,它自动使用匹配的条令注释以及getter和setter创建我的属性。下面是一个小例子:

     /**
     * @ORM\Column(type="string", length=254)
     */
    private $attr1;
    
    /**
     * @ORM\Column(type="integer")
     */
    private $attr2;
    
    /**
     * @ORM\Column(type="boolean")
     */
    private $attr3;
    
    public function getAttr1(): ?string
    {
        return $this->attr1;
    }
    
    public function setAttr1(string $attr1): self
    {
        $this->attr1 = $attr1;
        return $this;
    }
    
    public function getAttr2(): ?int
    {
        return $this->attr2;
    }
    
    public function setAttr2(int $attr2): self
    {
        $this->attr2 = $attr2;
        return $this;
    }
    
    public function getAttr3(): ?bool
    {
        return $this->attr3;
    }
    
    public function setAttr3(bool $attr3): self
    {
        $this->attr3 = $attr3;
        return $this;
    }
    

    现在,我的问题是 ?string || ?int ||?bool || self 意思是他们喜欢告诉函数期望返回 string 那么 self 告诉函数?我只是对此有点困惑,因为直到现在我才在php中看到这样的东西。(注意新手提醒)

    3 回复  |  直到 6 年前
        1
  •  1
  •   user7867717    6 年前

    它用于注意php 7以来方法的输出类型,您可以获得更多信息 here

    这个 ? 输出类型的平均值 null ,以及 self 与当前类的类型相同。

        2
  •  1
  •   RiggsFolly    6 年前

    这些是参数类型(输入和输出)。

    • ? -它允许通过 null “收件人/发件人”方法。
    • self -这意味着该方法将返回其对象。
        3
  •  0
  •   Eakethet    6 年前

    Self表示返回该类的instance。它被称为“流畅的设定者”。这样,就可以链接调用方法。例如:

    $someObj->setId(1)
        ->setNum(5)
        ->setOtherAttr('string');