2009-11-21 15 views

回答

56

看起來像您使用的是Wordpress - wp-includes/l10n.php將__定義爲函數,該函數翻譯字符串(類似於gettext及其別名,_但帶有用於顯式指定域的可選參數)。

+35

它只是我還是那個可怕的? – 2009-11-22 01:42:42

+31

這不僅僅是你。這很可怕。 – 2011-04-13 07:28:18

+5

隱藏,但非常方便。作爲旁註,php.net認爲所有以__(雙下劃線)開頭的函數都是保留的。這聽起來像他們不喜歡WordPress和其他人正在偷獵他們的魔法領域的事實。 http://us.php.net/manual/en/language.oop5.magic.php – Lane 2012-02-20 18:52:37

35

嚴格地說,它在PHP中沒有任何意義,因爲它不是預定義函數。但是,在許多框架中,如CakePHP和其他庫,雙下劃線是用於根據用戶的語言/區域偏好來翻譯字符串的函數。

+3

不知道。令人混淆的是,__的CakePHP版本與Wordpress中的版本完全不同(CakePHP默認情況下會響應字符串,除非第二個參數爲false)。我敢打賭,*以前從未絆倒任何人...... – SimonJ 2009-11-22 02:01:02

5

如前所述,它通常用於在語言之間翻譯文本,但實際上它與任何函數調用在相同的上下文中使用。

testfunction(); 

無異於是

__(); 
+20

其實,testfunction()是非常不同的,因爲它有一個理智的名字。 __是命名一個函數的完全愚蠢的東西。 – 2011-04-13 07:30:23