2011-03-18 133 views
19

Estas son muchas de las funciones de subrayado doble antes del nombre:¿Por qué doble guión bajo (__) en php?

__construct, 
__destruct, 
__call, 
__callStatic, 
__get, 
__set, 
__isset, 
__unset, 
__sleep, 
__wakeup, 
__toString, 
__invoke, 
__set_state 
__clone 

Sólo necesito saber por qué se utiliza este guión antes de que estas funciones.

+2

Solo para decir que son especiales (algunos de ellos, como __get, __set y __call se llaman métodos mágicos), y para evitar interferir con los nombres de sus propios métodos. – Artefact2

Respuesta

30

Como se dijo here:

reservas de PHP todos los nombres de las funciones que comienzan con __ como mágicos. Es recomendó que no se utiliza nombres de funciones con __ en PHP a menos quieres un poco documentada funcionalidad mágica

Para resumir, PHP llama a estas funciones implícitamente y no se debe utilizar esta denominación convención usted mismo.

4

Underscoritis. En PHP, los subrayados se han utilizado en varios lugares, por ejemplo, como prefijo en los $ _XYZ superglobals.

Los nombres de método que ha enumerado son métodos mágicos. Para que se vean un poco más especial, han sido prefijados con dos guiones bajos. - Eso es lo que generalmente sucede cuando el uso de un subrayado como anuncio ya está demasiado extendido. Este patrón de nombres no es específico de PHP.

Aún puede definir sus propias funciones con dos __, pero no debe evitar la confusión con métodos mágicos reales o futuras extensiones de lenguaje. (Aunque eso no es muy probable.)

Cuestiones relacionadas