setters / getters en une méthode
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.
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;
}
}