Tôi muốn đánh giá ý kiến của mọi người về việc sử dụng các lớp tĩnh thay vì không gian tên. Tôi đến từ một nền C++ và khá thích cú pháp của nó và cách nó cho phép bạn cấu trúc mã. Gần đây tôi đã quyết định tôi cần nhóm mã của mình thành các đơn vị logic thay vì chỉ các tệp. Ví dụ tôi thích các cuộc gọi như User :: login to user_login. Vì vậy, tôi đã làm một chút googling và đã được thuyên giảm để thấy rằng PHP có không gian tên. Việc cứu trợ của tôi không kéo dài lâu, tôi thực sự không thích cú pháp; nó làm tăng thêm sự lộn xộn cho các cuộc gọi hàm của tôi. Vì vậy, tại thời điểm này tôi đang sử dụng các lớp tĩnh để mô phỏng các không gian tên. Có bất kỳ nhược điểm nào đối với điều này không?Lớp tĩnh hoặc không gian tên PHP
Tôi đã tìm thấy câu hỏi tương tự tại PHP Namespaces vs Classes with static functions nhưng không có nhiều thảo luận.
Ngoài ra, có một cách để tránh những tình huống sau đây:
class Test {
public static void myFunc() {
Test::myOtherFunc();
}
public static void myOtherFunc() {
}
}
tôi cho rằng nó sẽ là ok để gọi chức năng trong cùng một lớp mà không chỉ định tên, nhưng dường như không. Có cách giải quyết nào cho điều đó không (ví dụ trong C++ có từ khóa đang sử dụng).
'self ::' và '$ this->' được sử dụng trong PHP để gọi các phương thức tĩnh và dụ của riêng bạn tương ứng. –
Vì vậy, không có cách nào để trình độ chuyên môn tiềm ẩn? tức là để kiểm tra lớp hiện tại cho một hàm? – user1520427
Không, nhưng tôi thấy rõ ràng là một điều tốt :) –