jueves, 26 de noviembre de 2009

Métodos mágicos II – PHP 5 Orientado a objetos

En esta segunda entrega de los métodos mágicos de PHP os voy a comentar dos nuevos métodos que se han agregado a la versión 5 de PHP para trabajar con clases.

Los métodos de los que os voy a hablar son el __clone(), un método que sería el equivalente al constructor de copia de la Programación orientada a objetos de toda la vida, y el __get() y __set().

Empecemos por el __clone(). Este método realiza las funciones del constructor de copia de toda la vida. Hace una copia exacta del objeto. Si nuestro objeto tiene referencias a otros objetos también los copia.

Por otro lado, todos los que hemos programado orientado a objetos tenemos claro el tema del ámbito de los atributos y métodos. Sabemos que si el atributo es privado sólo se puede acceder a él desde dentro de la clase y desde fuera solo se puede acceder a su información a través de los métodos accesores y selectores (get y set).

Los métodos __get() y __set() nos lo ponen bien fácil. Si no existieran estos métodos genéricos, deberíamos definir un get y un set para cada uno de los atributos.

Aquí tenéis un ejemplo de como se programarían estos métodos:

class Rectangulo{
private $ancho;
private $alto;

function __clone(){
$this->ancho = clone $this->ancho;
$this->alto = clone $this->alto;
}

function __get($value){
return $this->$value;
}

function __set($value, $param){
if(is_numeric($param)){
$this->$value = $param;
}
}
}


Escuchando... Rod Stewart and the faces -- Maggie May
[kml_flashembed movie="http://www.youtube.com/v/xikQ0c5KdZE" width="425" height="350" wmode="transparent" /]

No hay comentarios:

Publicar un comentario