2009-11-30 40 views
7

Khi tên hàm PHP bắt đầu bằng dấu gạch dưới thì nghĩa là gì?Dấu gạch dưới trong hàm php

ví dụ: __construct()

Tôi biết những gì các cấu trúc có nghĩa nhưng tôi đã nhìn thấy những nơi khác mà chức năng bắt đầu với một dấu gạch dưới, hay một dấu gạch dưới đôi và tôi chỉ không chắc chắn về ý nghĩa.

+0

Cảm ơn mọi người, về câu trả lời của bạn. – Stepppo

Trả lời

16

Điều đó có nghĩa là PHP gọi nó là ngầm.

Nó được gọi là 'Phương pháp ma thuật'

Ngoài ra, đó là hai dấu gạch dưới, không phải một.

Tìm hiểu thêm ở đây: PHP Magic Methods

+4

Ah. Magic trong PHP. Điều gì tiếp theo? –

+1

Mọi người đều ghét php - và tôi đang xem xét việc học nó: ( – Amarghosh

+2

Trích dẫn Vua sư tử: "Có MAGIC trong không khí!" –

5

Trong PHP, chức năng bắt đầu với hai dấu gạch dưới thường có ý nghĩa đặc biệt. Từ hướng dẫn sử dụng:

PHP đặt tất cả tên hàm bắt đầu bằng __ như ma thuật. Đó là khuyên bạn không nên sử dụng tên chức năng với __ trong PHP trừ khi bạn muốn có một số chức năng ma thuật được ghi lại tài liệu .

Ví dụ __construct() là một phương pháp đặc biệt được gọi tự động khi khởi tạo đối tượng.

Se thêm: http://php.net/manual/en/language.oop5.magic.php

1

Như đã đề cập trong câu trả lời khác, gạch dưới đôi được sử dụng cho các phương pháp "ma thuật". Ý tưởng là người dùng sẽ không bao giờ cố ý sử dụng hai dấu gạch dưới cho tên phương thức, do đó, có rất ít nguy cơ va chạm. Lý do nó không phải là một dấu gạch dưới duy nhất, tôi tin, là dấu gạch dưới duy nhất là một quy ước phổ biến cho các phương pháp riêng trong những ngày cũ xấu, trước khi từ khóa 'riêng tư' xuất hiện để thực thi tính riêng tư của OO.

0

Trong bộ mã vạch, nếu bạn bắt đầu một phương thức trong bộ điều khiển có dấu gạch dưới, bộ định tuyến sẽ biết không cho phép nó được truy cập từ url.

2

Cũng có tên "kiểu mã hóa" chung, sử dụng dấu gạch dưới ban đầu để biểu thị các phương thức hoặc thuộc tính là riêng tư/được bảo vệ. Tôi nghĩ nó khá phổ biến.

+0

Có, tôi đã sử dụng điều này trong C# – dmeehan

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