2009-11-21 12 views

Odpowiedz

56

Wygląda na to, że używasz Wordpress - wp-includes/l10n.php definiuje __ jako funkcja, która przekłada ciąg (podobny do gettext i jej alias, _ ale z opcjonalnym parametrem dla jednoznacznie określający domenę).

+35

Czy to tylko ja, czy jest to ohydne? –

+31

To nie tylko ty. To jest ohydne. –

+5

Ohydny, ale bardzo wygodny. Jako senuote, php.net mówi, że wszystkie funkcje zaczynające się od __ (podwójne podkreślenie) są zarezerwowane. Wygląda na to, że nie podoba im się to, że WordPress i inni kłusią na swoim terytorium magicznej metody. http://us.php.net/manual/en/language.oop5.magic.php – Lane

35

Ściśle mówiąc, w PHP nic nie znaczy, ponieważ nie jest predefiniowaną funkcją. Jednak w wielu frameworkach, takich jak CakePHP i innych bibliotekach, podwójne podkreślenie jest funkcją służącą do tłumaczenia łańcuchów na podstawie preferencji języka/ustawień użytkownika.

+3

Brak pomysłu. Mylące jednak, wersja Cake_P __ zachowuje się zupełnie inaczej niż w WordPress (CakePHP, domyślnie, echo ciąg, chyba że drugi parametr jest fałszywy). Założę się, że * nigdy nikogo nie wywaliłeś ... – SimonJ

5

Jak wspomniano, jest to zwykle używane do tłumaczenia tekstu między językami, ale tak naprawdę jest używane w tym samym kontekście, co każde wywołanie funkcji.

testfunction(); 

nie różni się wtedy

__(); 
+20

W rzeczywistości testfunction() jest bardzo różne, ponieważ ma przyzwoitą nazwę. __ jest całkowicie głupią rzeczą, aby nazwać funkcję. –

Powiązane problemy