¿Cuáles son Getter y Setter?
Pregunta
¿Cuáles son los captadores y definidores en PHP5?
Puede alguien dar un buen ejemplo, con una explicación?
Solución
Este es el concepto de ocultación de datos (o encapsulación) en la programación orientada a objetos. Por ejemplo, si usted quiere tener una cierta propiedad en su clase digamos 'cantidad' y darle al cliente de que la clase la opción de cambiar o extraer su valor Debe tomar la 'cantidad' variable privada (no visible para aquellos que utilizan su clase) y generar dos métodos getter y setter que manipula su valor (que son públicos).
La razón es ser capaz de validar los datos o manipularlo o antes de obtener su valor. He aquí un breve ejemplo:
class test {
private $count; //those who use your class are not able to see this property, only the methods above
public function setCount( $value )
{
//make some validation or manipulation on data here, if needed
$this->count = $value;
}
public function getCount()
{
return $this->count;
}
}
Otros consejos
Los atributos de las clases pueden ser privadas. Eso significa que sólo el objeto puede leer y escribir sus propios atributos privados. Por lo tanto necesita métodos para hacer eso. Los métodos que leídos y volver un valor de atributo son llamados captadores y los que se llaman escribir atributos definidores. Con estos métodos de las clases pueden controlar lo que está pasando y lo que viene en. Este concepto se llama encapsulación .
captadores y definidores son bastante nuevo concepto en PHP 5 en forma de dos funciones mágico __get () y poner (). Estas dos funciones establecer u obtener valor de la propiedad de un objeto de forma espectacular como se explica en el siguiente ejemplo.
class Datatype{
private $thing;
public function _set($k,$v){
$this->$k = $v;
}
public function __get($k){
return $this->$k;
}
}
El manual de PHP no es realmente muy detallado sobre el tema, y no es un ejemplo muy detallado que debe explicar muchas cosas. Métodos mágicos: la sobrecarga de la propiedad