2009-11-21 32 views

Trả lời

56

Có vẻ như bạn đang sử dụng Wordpress - wp-includes/l10n.php định nghĩa __ làm hàm dịch chuỗi (tương tự như gettext và bí danh của nó, _ nhưng có tham số tùy chọn để chỉ định rõ tên miền).

+35

Chỉ là tôi hoặc là ghê tởm? –

+31

Nó không chỉ là bạn. Nó thật ghê gớm. –

+5

Hiếm, nhưng rất tiện lợi. Là một sidenote, php.net nói rằng tất cả các hàm bắt đầu bằng __ (double underscore) đều được bảo lưu. Có vẻ như họ không thích thực tế rằng WordPress và những người khác đang săn trộm trên lãnh thổ phương pháp ma thuật của họ. http://us.php.net/manual/en/language.oop5.magic.php – Lane

35

Nói đúng, nó có nghĩa là không có gì trong PHP vì nó không phải là hàm được xác định trước. Tuy nhiên, trong nhiều khung công tác, như CakePHP và các thư viện khác, dấu gạch dưới kép là một hàm được sử dụng để dịch chuỗi dựa trên tùy chọn ngôn ngữ/ngôn ngữ của người dùng.

+3

Không có ý tưởng. Mặc dù vậy, phiên bản CakePHP của __ hoạt động hoàn toàn khác với phiên bản Wordpress (CakePHP, theo mặc định, lặp lại chuỗi trừ khi tham số thứ hai là sai). Tôi sẽ đặt cược * rằng * không bao giờ vấp phải bất cứ ai trước đây ... – SimonJ

5

Như đã đề cập, nó thường được sử dụng để dịch văn bản giữa các ngôn ngữ nhưng thực sự nó được sử dụng trong cùng ngữ cảnh như bất kỳ cuộc gọi chức năng nào.

testfunction(); 

là không khác nhau sau đó

__(); 
+20

Trên thực tế, hàm testfunction() rất khác nhau, bởi vì nó có tên sane. __ là một điều hoàn toàn ngu ngốc để đặt tên cho một hàm. –

Các vấn đề liên quan