Double Underscore in PHP?

后端 未结 5 1998
悲&欢浪女
悲&欢浪女 2020-11-30 09:17

What does the double underscores in these lines of PHP code mean?

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


        
相关标签:
5条回答
  • 2020-11-30 10:03

    WordPress documents it's __() function, part of the localisation technology here: https://make.wordpress.org/polyglots/handbook/translating/working-with-core/#localization-technology

    It is difficult to find documentation because __(), __('') or __("") is not very searchable, double underscore and parentheses (round brackets) are keywords to use.

    0 讨论(0)
  • 2020-11-30 10:03

    A similar or third-party GNU gettext based implementation:

    http://www.php.net/manual/en/function.gettext.php

    Note: You may use the underscore character '_' as an alias to this function.

    0 讨论(0)
  • 2020-11-30 10:06

    Strictly speaking, it means nothing in PHP as it is not a pre-defined function. However, in many frameworks, like CakePHP, and other libraries the double underscore is a function used for translating strings based on the user's language/locale preference.

    0 讨论(0)
  • 2020-11-30 10:11

    As mentioned it is generally used for translating text between languages but really it is used in the same context as any function call.

    testfunction();
    

    is no different then

    __();
    
    0 讨论(0)
  • 2020-11-30 10:16

    Looks like you're using Wordpress - wp-includes/l10n.php defines __ as a function that translates a string (similar to gettext and its alias, _ but with an optional parameter for explicitly specifying a domain).

    0 讨论(0)
提交回复
热议问题