son8xvn: Theo định nghĩa thì getInstance() là một phương thức static.
Ôi, định nghĩa ở đâu đấy bạn :)
getInstance() chỉ là cái tên method do bạn đặt thôi, quan trọng là bên trong nó xử lý thế nào. Theo như những gì bạn nói có thể hiểu là, bạn đang muốn nói đến singleton pattern (
http://en.wikipedia.org/wiki/Singleton_pattern#PHP)
Bạn thường dùng singleton trong trường hợp muốn tạo & sử dụng duy nhất 1 (và chỉ 1) đối tượng trong suốt quá trình chạy ứng dụng.
Nhiệm vụ của singleton method đó là: khởi tạo 1 instance (thể hiện, thực thể - dịch sang tiếng Việt khó quá) của lớp (nếu chưa được tạo), nếu có rồi thì trả về tham chiếu đến instance đã được tạo đó.
Vậy để 1 lớp chỉ có thể tạo được duy nhất 1 instance thì phải thỏa mãn:
- __constructor của lớp phải được set private or protected.
- Phải có 1 biến static để tham chiếu đến instance duy nhất.
- có 1 public static method để khởi tạo lớp & thường người ta đặt tên là getInstance() hoặc instance()...