PHP tiene mucha magia almacenada en él. Métodos mágicos en PHP es una manera de presenciarlo. Estos métodos se ejecutan automáticamente en cierto evento o situación. Los nombres de las funciones __construct, __destruct, __get, __set etc., son conocidos como métodos mágicos en las clases PHP. Eso significa que funcionan estos nombres son reservados y no se puede tener estos nombres de funciones en sus clases PHP cuando la escritura de código PHP favorito. De acuerdo con un descargo de responsabilidad en el sitio oficial de PHP, se menciona que todas las funciones que comienzan con __ (doble guión) se reserva en PHP.
Entonces, ¿qué hacen estos métodos mágicos y cómo puede beneficiarse de estos. Un ejemplo común es el método mágico __construct la que es llamada automáticamente cuando se crea un objeto de una clase y de manera similar __destruct se ejecuta cuando tan pronto como todas las referencias a un objeto en particular sean removidas o cuando el objeto se destruye de forma explícita o en cualquier orden en la parada secuencia.
<?php
Entonces, ¿qué hacen estos métodos mágicos y cómo puede beneficiarse de estos. Un ejemplo común es el método mágico __construct la que es llamada automáticamente cuando se crea un objeto de una clase y de manera similar __destruct se ejecuta cuando tan pronto como todas las referencias a un objeto en particular sean removidas o cuando el objeto se destruye de forma explícita o en cualquier orden en la parada secuencia.
Ejemplo de método mágico explicó usando __get y __set:
<?php
class foo
{
private $private_var = 'my private variable';
function __construct()
{
echo 'Called __contruct();<br/>';
}
function __get($name)
{
echo "Called __get(); with argument $name";
}
function __set($name,$value)
{
echo "Called __set(); with argument $name and value = $value";
}
}
$obj=new foo();//output ->> Called __contruct();
$obj->private_var;//output ->> Called __get(); with argument private_var
$obj->pop; //output ->> Called __get(); with argument pop
$obj->pop='foo'; //output ->> Called __set(); with argument pop and value = foo
unset ($obj);
?>
En el ejemplo anterior he mostrado ejemplo práctico de utilizar __get y _set métodos mágicos de PHP. El __get función o método se llama cuando una propiedad es inaccesible se accede de una clase. En caso normal no verá ningún error a aparecer, pero se ha hecho una llamada a la variable, que no se han obtenido ningún resultado. Así que para evitar este tipo de casos o manejar este tipo de llamadas fallidas utilizamos __get función. Sólo se utiliza para manejar las propiedades que no están presentes en su lugar uno puede manejar la petición a las variables que no son accesibles en el contexto de llamada. Por ejemplo, en el código anterior, los $ private_var no se puede llamar directamente fuera de la clase, por lo que en ese caso __get se ejecuta para manejar la petición correctamente.
Lo mismo es con __set método mágico, que se llama cuando el usuario intenta establecer un valor de la variable o propiedad que no está presente o en otros términos que no es accesible.
muchas gracias
0 on: "USO DE METODOS MAGICOS PHP"