2010-07-26 30 views
10

Tôi nhận ra rằng có thể định nghĩa một phương thức lớp tĩnh là riêng tư và được bảo vệ trong PHP. Điều này cho phép một lớp được khởi tạo, hoặc phương thức tĩnh công khai để truy cập các phương thức tĩnh riêng tư/được bảo vệ của nó.Các phương pháp tĩnh PHP có thể hợp pháp có được sự bảo vệ riêng tư hay không?

protected static function jumpOver () 

Tuy nhiên tôi không chắc liệu điều này có hợp pháp theo ý nghĩa của thiết kế OOP hay không. Tôi không thể tìm thấy bất kỳ thông tin thực sự nói rằng nó ok để làm điều này. Tôi đang lo lắng PHP có thể "vá" điều này trong các phiên bản tương lai nếu điều này không hợp lệ và phá vỡ các tập lệnh của tôi.

Cảm ơn sự giúp đỡ.

+0

'chức năng tĩnh được bảo vệ' là hợp pháp, nó có thể được sử dụng làm phương pháp trợ giúp cho các phương pháp tĩnh khác. –

Trả lời

9

Có. Các phương thức tĩnh thường không có gì khác hơn là các phương thức trợ giúp có mã mà bạn có thể không muốn công khai.

Các ngôn ngữ hướng đối tượng phổ biến khác mà tôi cũng có thể nghĩ đến nó (C++, Java, C#). Tôi thực sự không nghĩ rằng họ sẽ loại bỏ tính năng đó.

Bên cạnh đó, những người ở PHP chậm làm hỏng các tính năng hiện có, vì vậy tôi sẽ không lo lắng quá nhiều về nó.

+0

uhm ... không phải là từ khóa cuối cùng bạn muốn sử dụng để bảo vệ mã của bạn? – dierre

+3

@dierre: 'final' bảo vệ khỏi ghi đè/kế thừa, nhưng nó không bảo vệ quyền truy cập. – zneak

+0

oh, ok. Xin lỗi tôi nghĩ rằng bằng cách nói "có mã bạn có thể không muốn được công khai" được gọi là khả năng ghi đè/kế thừa nó. – dierre

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