これらのPHPコード行の二重下線は何を意味していますか?PHPの二重下線?
$WPLD_Trans['Yes']=__('Yes',$WPLD_Domain);
$WPLD_Trans['No']=__('No',$WPLD_Domain);
これらのPHPコード行の二重下線は何を意味していますか?PHPの二重下線?
$WPLD_Trans['Yes']=__('Yes',$WPLD_Domain);
$WPLD_Trans['No']=__('No',$WPLD_Domain);
が見える - wp-includes/l10n.php
は(gettext
とその別名、_
に似ていますが、明示的にドメインを指定するためのオプションのパラメータを持つ)の文字列を変換関数として__定義しています。
厳密に言えば、それはあらかじめ定義された関数ではないため、PHPでは何も意味しません。しかし、CakePHPや他のライブラリのような多くのフレームワークでは、ダブルアンダースコアはユーザーの言語/ロケール設定に基づいて文字列を翻訳するために使用される関数です。あなたはWordpressのを使用しているよう
いいえ、わかりません。紛らわしいことに、__のCakePHPバージョンは、Wordpressのものとはまったく異なった動作をします(CakePHPは、デフォルトでは、2番目のパラメータがfalseでない限り、文字列をエコーします)。私は*誰もが前に誰かを乗り越えたことはないと賭けるだろう... – SimonJ
これは一般に、言語間のテキストの翻訳に使用されていますが、実際には関数呼び出しと同じコンテキストで使用されます。
testfunction();
は違いはありません、その後
__();
実際には、testfunction()はまったく異なっています。 __は、関数の名前を付けるのは完全にばかげたことです。 –
類似またはサードパーティGNU gettextベースの実装:
http://www.php.net/manual/en/function.gettext.php
注:アンダースコア文字を使用することができます '_'この関数のエイリアスとして。
WordPressの文書には、__()関数で、ここでのローカライズ技術の一部です:__()、__( '')、または__( "")ではないので、ドキュメントを見つけることは困難であるhttps://make.wordpress.org/polyglots/handbook/translating/working-with-core/#localization-technology
非常に検索可能な二重アンダースコアとかっこ(丸括弧)は使用するキーワードです。
それはただ私ですか?それとも恐ろしいですか? –
あなただけではありません。それは恐ろしいです。 –
ひどいですが、非常に便利です。 sidenoteとして、php.netは、__(二重下線)で始まるすべての機能が予約されていると言います。彼らはWordPressや他の人たちが彼らの魔法の領域で密かに暮らしているのを好きではないように思えます。 http://us.php.net/manual/en/language.oop5.magic.php – Lane