PDA

Ver la Versión Completa : para que se usa el prefijo _ antes de una funcion?


gabrielflowers
30-01-2008, 16:17:44
hola a todos, me encuentro aca de nuevo con dudas, mi pregunta es para que se usa el prefijo _ antes de una funcion, es decir por ejemplo: _loadhelper(); o __find();
ademas tengo otra duda: para que sirve la funcion __(string); ??????
si alguien sabe algo al respecto agradeceria mucho su colaboracion, gracias

dec
30-01-2008, 16:33:03
Hola,


hola a todos, me encuentro aca de nuevo con dudas, mi pregunta es para que se usa el prefijo _ antes de una funcion, es decir por ejemplo: _loadhelper(); o __find();


Algunas funciones de PHP conocidas como "mágicas" usan un "doble guión bajo" para diferenciarse de otras funciones, de proyectos particulares, que pudieran tener similar nombre. Es el caso, por ejemplo, de la función "__autoload()". También ocurre lo mismo con ciertas constantes de PHP, como pueda ser "__FILE__".

Eso en cuanto al propio PHP, y al uso de "doble guión bajo". El "simple guión bajo" se usaba hace tiempo, cuando en PHP no se distinguían entre métodos privados y públicos dentro de las clases. Así que el "guión bajo" es una convención usada para "declarar" un método como privado. Otros autores usarán también guiones bajos en otros casos, porque, nada impide hacerlo así, por el motivo que sea.


ademas tengo otra duda: para que sirve la funcion __(string); ??????


Ignoro si existe una función como tal en PHP, proporcionada por la extensión GetText. Pero, en ciertos sistemas (Wordpress, por ejemplo) se usa esa función o muy similares para trabajar con la librería PHP GetText. Son funciones "de nombre corto", básicamente, porque van a ser profusamente utilizadas dentro del código.

La librería PHP GetText se usa para localizar sistemas, es decir, mal y pronto, traducir su interfaz de usuario a distintos idiomas. Existen funciones como "__()" a las que se pasa una cadena que ha de ser "localizada" (traducida). Como digo, son funciones "de nombre corto", porque pueden usarse mucho y de otro modo hacer algo farragoso el código fuente.

En cierto sistema que desarrollo existen dos funciones "_r()" y "_e()", que, sirven, respectivamente, para "retornar una cadena localizada", y para "imprimir una cadena localizada". Es el mismo caso: son funciones de "nombre corto" para que no ocupen demasiado en el código fuente, por no usar funciones como "Localize()", "Translate()", etc., cada vez que se quiere localizar una cadena.

gabrielflowers
30-01-2008, 16:51:26
quedo clara tu respuesta dec, gracias por tu ayuda, saludos