Pregunta

Solo una idea:

ejemplo (en PHP): para establecer el nombre: $ object- > name ('nombre'); para obtener el nombre: $ object- > name ();

Si no hay argumento: el método se usa como getter, de lo contrario, como setter. Para simples getters / setter. Estúpido, lo que sea, tal vez?

editar: para dar seguimiento a las respuestas: Realmente no me gusta obtener y configurar porque prefiero tener la interfaz lo más explícita posible. Cuando solo hay unas pocas propiedades, también es excesivo en mi humilde opinión. Así que me gustaría limitarlo a clases / objetos con un par de getters / setters explícitos.

¿Fue útil?

Solución

Claro, podría hacerlo si tiene sentido en su aplicación, de lo contrario, simplemente usaría los captadores / configuradores estándar que ya se han configurado para usted. Su función podría verse más o menos así:

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

Otros consejos

El problema es que sería difícil de seguir. Prefiero usar __get y __set de PHP5 para que sea más natural obtener y establecer variables, y todos sabrán exactamente lo que estoy haciendo. 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.

Se puede hacer usando el 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 bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top