1. ホーム
  2. php

[解決済み】ゲッターとセッターは?

2022-04-08 16:21:08

質問

私はPHPの開発者ではないので、PHPでは明示的なゲッター/セッターを使用し、純粋なOOPスタイルで、プライベートフィールド(私が好きな方法)を持つことがより一般的であるかどうかを疑問に思っています。

class MyClass {
    private $firstField;
    private $secondField;

    public function getFirstField() {
        return $this->firstField;
    }
    public function setFirstField($x) {
        $this->firstField = $x;
    }
    public function getSecondField() {
        return $this->secondField;
    }
    public function setSecondField($x) {
        $this->secondField = $x;
    }
}

またはパブリックフィールドのみ。

class MyClass {
    public $firstField;
    public $secondField;
}

ありがとうございます。

解決方法は?

を使用することができます。 phpマジックメソッド __get__set .

<?php
class MyClass {
  private $firstField;
  private $secondField;

  public function __get($property) {
    if (property_exists($this, $property)) {
      return $this->$property;
    }
  }

  public function __set($property, $value) {
    if (property_exists($this, $property)) {
      $this->$property = $value;
    }

    return $this;
  }
}
?>