Question

Juste une idée:

exemple (en PHP): pour définir le nom: $ object- > name ('name'); pour obtenir le nom: $ object- > name ();

Si aucun argument: la méthode est utilisée comme getter, sinon comme setter. Pour les simples getters / setter. Stupide, peu importe, peut-être?

modifier: pour donner suite aux réponses: je n'aime pas trop obtenir et définir , car je préfère une interface aussi explicite que possible. Quand il n'y a que quelques propriétés, c'est aussi à mon humble avis. Donc, je voudrais le réduire aux classes / objets avec un couple de getters / setters explicites.

Était-ce utile?

La solution

Bien sûr, vous pouvez le faire si cela convient à votre application, sinon je n’utiliserais que les getters / setters standard qui ont déjà été configurés pour vous. Votre fonction pourrait ressembler à quelque chose comme ça:

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

Autres conseils

Le problème est qu’il serait difficile à suivre. Je préférerais de beaucoup utiliser __get et __set de PHP5, il est donc plus naturel d'obtenir et de définir des variables, et tout le monde saurait exactement ce que je fais. 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.

Cela peut être fait en utilisant la méthode magique __call ().

class Test {
    public function __call($name, array $args) {
        $variable =& $this->$name;
        if(!empty($args)) {
            $variable = $args[0];
        }
        return $variable;
    }
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top