2009-11-21 14 views
42

これらのPHPコード行の二重下線は何を意味していますか?PHPの二重下線?

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

答えて

56

が見える - wp-includes/l10n.phpは(gettextとその別名、_に似ていますが、明示的にドメインを指定するためのオプションのパラメータを持つ)の文字列を変換関数として__定義しています。

+35

それはただ私ですか?それとも恐ろしいですか? –

+31

あなただけではありません。それは恐ろしいです。 –

+5

ひどいですが、非常に便利です。 sidenoteとして、php.netは、__(二重下線)で始まるすべての機能が予約されていると言います。彼らはWordPressや他の人たちが彼らの魔法の領域で密かに暮らしているのを好きではないように思えます。 http://us.php.net/manual/en/language.oop5.magic.php – Lane

35

厳密に言えば、それはあらかじめ定義された関数ではないため、PHPでは何も意味しません。しかし、CakePHPや他のライブラリのような多くのフレームワークでは、ダブルアンダースコアはユーザーの言語/ロケール設定に基づいて文字列を翻訳するために使用される関数です。あなたはWordpressのを使用しているよう

+3

いいえ、わかりません。紛らわしいことに、__のCakePHPバージョンは、Wordpressのものとはまったく異なった動作をします(CakePHPは、デフォルトでは、2番目のパラメータがfalseでない限り、文字列をエコーし​​ます)。私は*誰もが前に誰かを乗り越えたことはないと賭けるだろう... – SimonJ

5

これは一般に、言語間のテキストの翻訳に使用されていますが、実際には関数呼び出しと同じコンテキストで使用されます。

testfunction(); 

は違いはありません、その後

__(); 
+20

実際には、testfunction()はまったく異なっています。 __は、関数の名前を付けるのは完全にばかげたことです。 –

関連する問題