PHP 5, nos trae una gran cantidad de auto-denominados “métodos mágicos”. Estos métodos, otorgan una funcionalidad pre-definida por PHP, que pueden aportar valor a nuestras clases y ahorrarnos grandes cantidades de código. Lo que muchos programadores consideramos, ayuda a convertir a PHP en un lenguaje orientado a objetos, cada vez más robusto.
Entre los métodos mágicos, podemos encontrar los siguientes:
Entre los métodos mágicos, podemos encontrar los siguientes:
El Método Mágico __construct()
El método __construct() es aquel que será invocado de manera automática, al instanciar un objeto. Su función es la de ejecutar cualquier inicialización que el objeto necesite antes de ser utilizado.
# declaro la clase
class Producto {
#defino algunas propiedades
public $nombre;
public $precio;
protected $estado;
#defino el método set_estado_producto()
protected function set_estado_producto($estado) {
$this->estado = $estado;
}
# constructor de la clase
function __construct() {
$this->set_estado_producto('en uso');
}
}
En el ejemplo anterior, el constructor de la clase se encarga de definir el estado del producto como “en
uso”, antes de que el objeto (Producto) comience a utilizarse. Si se agregaran otros métodos, éstos, podrán hacer referencia al estado del producto, para determinar si ejecutar o no determinada función. Por ejemplo, no podría mostrarse a la venta un producto “en uso por el sistema”, ya que a éste, se le podría estar modificando el precio.
El método mágico __destruct()
El método __destruct() es el encargado de liberar de la memoria, al objeto cuando ya no es referenciado. Se puede aprovechar este método, para realizar otras tareas que se estimen necesarias al momento de destruir un objeto.
# declaro la clase
class Producto {
#defino algunas propiedades
public $nombre;
public $precio;
protected $estado;
#defino el método set_estado_producto()
protected function set_estado_producto($estado) {
$this->estado = $estado;
}
# constructor de la clase
function __construct() {
$this->set_estado_producto('en uso');
}
# destructor de la clase
function __destruct() {
$this->set_estado_producto('liberado');
print 'El objeto ha sido destruido';
}
}
Otros métodos mágicos
PHP nos ofrece otros métodos mágicos tales como __call, __callStatic, __get, __set, __isset, __unset, __sleep, __wakeup, __toString, __invoke, __set_state y __clone.
Puede verse una descripción y ejemplo de su uso, en el sitio Web oficial de PHP: