Una de las posibilidades más útiles que nos ofrece el trabajar con objetos es el polimorfismo. Imagina una clase abstracta que sirve de base a cinco o seis clases “hijas“, de esta forma unes toda las funcionalidades que comparten en una misma clase y solo modificas o añades pequeños matices

Hasta el momento hemos visto que para poder usar un objeto primero hemos de instanciar su clase, pero hay una excepción a esta forma de proceder, las clases abstractas. Las clases abstractas se declaran con la instrucción “abstract”, estas no necesitan ser instanciadas, así que podemos acceder a sus métodos

Siguiendo con el tema de la Herencia voy a hablar un poco de como podemos controlar lo que heredamos, si nos fijamos en los ejemplos anteriores siempre marque los atributos y los métodos como públicos (public), pero esto no tiene porque ser así, si queremos podemos cambiar su grado de

De momento hemos visto numerosos ejemplos para trabajar con objetos, pero si nos fijamos bien, todas las clases que hemos usado funcionan de forma independiente, no suelen interactuar con otras clases ni las necesitan. Desde mi punto de vista una de los posibilidades más potentes que nos ofrece el trabajar

Al igual que el lenguaje provee de unos métodos mágicos predefinidos para realizar diferentes acciones, también provee de unas constantes predefinidas para obtener información del código contenido en el script que estamos ejecutando. Las constantes mágicas al igual que los métodos mágicos comienzan con dos barras inferiores (__), pero a diferencia

Cuando estamos trabajando con variables y objetos podemos llegar a pensar que para copiar un objeto basta con asignarlo a otra variable así: <?php class Persona { private $_nombre; public function __construct( $nombre ){ $this->_nombre = $nombre; } public function __toString(){ return $this->_nombre; } } $persona = new Persona( 'Juan' ); $persona2 = $persona;

Siguiendo con los métodos mágicos que nos facilita php, voy a hablar de __isset, __unset y toString. El método __isset se dispara cuando tratamos de comprobar que un atributo existe mediante la función isset() o si tiene algún contenido mediante empty(). Solo tenemos que pasarle un parámetro que es el