formadores / getters em um método
Pergunta
Apenas uma idéia:
exemplo (em PHP): ao nome do conjunto: $ Object-> nome ( 'name'); para obter o nome: $ Object-> name ();
Se nenhum argumento: o método é usado como getter, então como setter. Para getters simples / setter. Estúpido, qualquer que seja, talvez?
edit: para acompanhar as respostas: Eu realmente não gosto de obter e definir porque eu prefiro ter a interface mais explícito possível. Quando há apenas algumas propriedades também é IMHO um exagero. Então eu gostaria de reduzi-lo a classes / objetos com um par de getters explícitas / setters.
Solução
Claro, você pode fazer isso se faz sentido em sua aplicação, caso contrário eu iria usar apenas os getters padrão / setters que já foram criados para você. Sua função poderia ser algo como isto:
public function name($val = null)
{
if (is_null($val))
{
return $this->name;
}
else
{
$this->name = $val;
}
}
Outras dicas
O problema é que seria difícil de seguir. Eu prefiro usar __get e __set do PHP5 por isso é mais natural para obter e conjunto de variáveis, e todos saberiam exatamente o que estou fazendo. 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.
Isso pode ser feito usando o método mágico __call ().
class Test {
public function __call($name, array $args) {
$variable =& $this->$name;
if(!empty($args)) {
$variable = $args[0];
}
return $variable;
}
}