2009-11-21 20 views
42

¿Qué significa el doble guión bajo en estas líneas de código PHP?Doble subrayado en PHP?

$WPLD_Trans['Yes']=__('Yes',$WPLD_Domain); 
$WPLD_Trans['No']=__('No',$WPLD_Domain); 

Respuesta

56

parece que estás utilizando Wordpress - wp-includes/l10n.php define __ como una función que traduce una cadena (similar a gettext y su alias, _ pero con un parámetro opcional para especificar explícitamente un dominio).

+35

¿Soy yo o es tan horrible? –

+31

No eres solo tú. Es horrible. –

+5

Horrible, pero muy conveniente. Como nota al margen, php.net dice que todas las funciones que comienzan con __ (doble guión bajo) están reservadas. Parece que no les gusta el hecho de que WordPress y otros están cazando furtivamente en su territorio de método mágico. http://us.php.net/manual/en/language.oop5.magic.php – Lane

35

Estrictamente hablando, no significa nada en PHP, ya que no es una función predefinida. Sin embargo, en muchos marcos, como CakePHP, y otras bibliotecas, el doble guión bajo es una función utilizada para traducir cadenas según las preferencias de idioma/configuración regional del usuario.

+3

No hay idea. Aunque confusamente, la versión de CakePHP de __ se comporta de manera completamente diferente a la de WordPress (CakePHP, por defecto, repite la cadena a menos que el segundo parámetro sea falso). Apuesto a que * nunca * ha disparado a nadie antes ... – SimonJ

5

Como se mencionó, se usa generalmente para traducir texto entre idiomas pero realmente se usa en el mismo contexto que cualquier llamada a función.

testfunction(); 

no es diferente a continuación,

__(); 
+20

En realidad, la función de prueba() es muy diferente, porque tiene un nombre correcto. __ es una cosa completamente estúpida para nombrar una función. –