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

Los métodos mágicos set, get trabajan de forma similar al método mágico call, si recordamos un poco el método call nos permite alterar el comportamiento al invocar un método inexistente o privado de nuestro objeto. Pues el método get realiza la misma función, salvo que en vez de dispararse al

Todos los lenguajes incorporan herramientas para hacer frente a diversos tipos de situaciones, algunas comunes, otras absurdas y otras poco usadas, como el método mágico __invoke(). Si recordamos hace menos de un mes hablamos sobre las funciones anónimas en el blog, en ese artículo se explicaba como poder usar una

En el ultimo artículo de la serie empecé a hablar sobre los métodos mágicos construct y destruct, y para seguir con el tema de los métodos mágicos quiero hablar hoy de los métodos sleep y wakeup. ¿Os acordáis de Super Mario? Usaré su clase a modo de ejemplo pero quitando

En php tenemos los llamados métodos mágicos, son métodos incluidos por defecto en todas las clases que se llaman internamente al dispararse un evento concreto. Estos métodos se reconocen rápidamente porque usan dos barras inferiores “” antes del nombre, por ejemplo *construct()*. Hay una buena variedad de métodos mágicos, pero vamos