Junior
¿Qué métodos mágicos de la clase conoces?
sobes.tech AI
Respuesta de la IA
En PHP, existen una serie de métodos especiales llamados "mágicos". Se llaman automáticamente en ciertas acciones con objetos de clase. Aquí algunos de ellos:
__construct(): Se llama al crear una nueva instancia de la clase. Se usa para inicializar el objeto.__destruct(): Se llama al destruir el objeto (por ejemplo, al finalizar la ejecución del script o al llamar explícitamente aunset()). Se usa para liberar recursos.__call($name, $arguments): Se llama al intentar invocar un método del objeto que no es accesible (no visible en el contexto actual).$namees el nombre del método llamado,$argumentses un array con sus argumentos.__callStatic($name, $arguments): Similar a__call(), pero se invoca al intentar llamar a un método estático no accesible.__get($name): Se llama al intentar leer una propiedad del objeto que no es accesible.$namees el nombre de la propiedad.__set($name, $value): Se llama al intentar asignar a una propiedad no accesible.$namees el nombre de la propiedad,$valueel valor asignado.__isset($name): Se llama al verificar si una propiedad no accesible existe usandoisset()oempty().$namees el nombre de la propiedad.__unset($name): Se llama al intentar eliminar una propiedad no accesible usandounset().$namees el nombre de la propiedad.__sleep(): Se llama antes de serializar el objeto conserialize(). Debe devolver un array con los nombres de las propiedades a serializar.__wakeup(): Se llama justo después de deserializar el objeto conunserialize(). Puede usarse para restaurar conexiones o recursos.__toString(): Se llama al intentar convertir el objeto a una cadena (por ejemplo, al usarecho). Debe devolver una representación en cadena del objeto.__invoke(...$args): Se llama al intentar usar el objeto como una función.__set_state(array $properties): Se llama al restaurar un objeto convar_export(). Recibe un array de propiedades exportadas porvar_export().__clone(): Se llama al clonar un objeto conclone. Se usa para realizar copias profundas (por ejemplo, objetos dentro de un objeto).
Es importante usar estos métodos con precaución, ya que un uso incorrecto puede llevar a comportamientos impredecibles del código.