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.

Foi útil?

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;
    }
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top