Frage

Nur eine Idee:

Beispiel (in PHP): einstellen Name: $ Objekt-> name ( 'name'); zu bekommen Name: $ Objekt-> name ();

Wenn kein Argument: das Verfahren als Getter verwendet wird, anders als Setter. Für einfache Getter / Setter. Dumm, was auch immer, vielleicht?

edit: Follow-up auf die Antworten: Ich weiß nicht wirklich wie erhalten und setzen , weil ich es vorziehen, die Schnittstelle so explizit wie möglich zu haben. Wenn es nur ein paar Eigenschaften, es ist auch viel des Guten IMHO. So würde Ich mag es verengen, um Klassen / Objekte mit einem paar expliziten Getter / Setter.

War es hilfreich?

Lösung

Natürlich könnten Sie das tun, wenn es sinnvoll, in der Anwendung macht, sonst würde ich nur das Standard-Getter / Setter, die bereits für Sie eingerichtet wurden. Ihre Funktion wie folgt aussehen könnte:

public function name($val = null)
{
  if (is_null($val))
  {
    return $this->name;
  }
  else
  {
    $this->name = $val;
  }
}

Andere Tipps

Das Problem ist, es wäre schwer zu folgen. Ich würde viel lieber PHP5 die __get und __set verwenden, damit es natürlicher ist Variablen zu erhalten und gesetzt, und jeder würde wissen genau, was ich tue. IE:

class myClass
{

    function __get($name)
    {
       return $this->array[$name];
    }
    function __set($name, $value)
    {
       $this->array[$name] = $value;
    }
    function print()
    {
       echo $this->array['test'];
    }
}
$obj = new myClass;
$obj->test = "Hi";
echo $obj->test; //echos Hi.
$obj->print(); //echos Hi.

Es kann getan werden, um die __call () verwendet magische Methode.

class Test {
    public function __call($name, array $args) {
        $variable =& $this->$name;
        if(!empty($args)) {
            $variable = $args[0];
        }
        return $variable;
    }
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top