Pregunta

¿Cuáles son los captadores y definidores en PHP5?

Puede alguien dar un buen ejemplo, con una explicación?

¿Fue útil?

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top