Métodos mágicos II – PHP 5 Orientado a objetos
Escrito por iRock en PHP, tags: metodos magicos, orientado a objetos, PHP, PHP 5, POO, __clone, __get, __setEn 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

Entradas (RSS)