PHP的双下划线?

Dra*_*cir 47 php double-underscore

这些PHP代码行中的双重下划线是什么意思?

$WPLD_Trans['Yes']=__('Yes',$WPLD_Domain);
$WPLD_Trans['No']=__('No',$WPLD_Domain);
Run Code Online (Sandbox Code Playgroud)

Sim*_*onJ 58

看起来你正在使用Wordpress - wp-includes/l10n.php将__定义为一个转换字符串的函数(类似于gettext和它的别名,_但带有一个用于显式指定域的可选参数).

  • 丑陋,但非常方便.作为旁注,php.net说所有以__(双下划线)开头的函数都是保留的.听起来他们不喜欢WordPress和其他人在他们的魔法方法领域偷猎的事实.http://us.php.net/manual/en/language.oop5.magic.php (8认同)

Mik*_*e B 37

严格地说,它在PHP中没有任何意义,因为它不是预定义的函数.但是,在许多框架中,如CakePHP和其他库,双下划线是一个用于根据用户的语言/区域设置首选项翻译字符串的函数.

  • 不知道.令人困惑的是,__的CakePHP版本与Wordpress中的版本完全不同(CakePHP,默认情况下,除非第二个参数为false,否则回显字符串).我打赌*之前从未绊过任何人...... (4认同)

Jas*_*vis 6

如上所述,它通常用于在语言之间翻译文本,但实际上它与任何函数调用在相同的上下文中使用.

testfunction();
Run Code Online (Sandbox Code Playgroud)

没有什么不同

__();
Run Code Online (Sandbox Code Playgroud)

  • 实际上,testfunction()是非常不同的,因为它有一个合理的名称.命名函数是一个完全愚蠢的事情. (25认同)

Pau*_*ulH 5

WordPress在这里记录了它的__()函数,这是本地化技术的一部分:https : //make.wordpress.org/polyglots/handbook/translator/working-with-core/#localization-technology

很难找到文档,因为__(),__('')或__(“”)不太容易搜索,双下划线和括号(圆括号)是要使用的关键字。