Static method trong PHP và khi nào nên sử dụng chúng

 


Static method là gì ?

    Trong lập trình, static method (phương thức tĩnh) là một phương thức thuộc về class và có thể được gọi mà không cần tạo ra một đối tượng của class đó. Chúng được khai báo với từ khóa static và có thể được truy cập bằng cách sử dụng tên class, dấu hai chấm (::) và tên phương thức. Static method rất hữu ích khi bạn muốn sử dụng một phương thức thuộc về một class mà không cần phải tạo một đối tượng của class đó

    Tuy nhiên, để có thể sử dụng tốt static method thì chúng ta cũng nên tìm hiểu về ưu và nhược điểm của chúng. Vậy hãy cũng xem chúng có ưu và nhược điểm gì nhé.


1. Không cần khởi tạo đối tượng

    Việc sử dụng static method giúp giảm thiểu sự tốn kém về tài nguyên bộ nhớ và tốc độ thực thi chương trình, bởi vì bạn không cần phải tạo ra một đối tượng mới để gọi phương thức.




    Một class có thể có cả static và non-static method. Một static method có thể truy cập từ một phương thức cùng trong đối tượng của class bằng cách sử dụng từ khóa self và hai dấu hai chấm (::)

2. Không thể sử dụng các biến và phương thức non-static

    Điều này có nghĩa là static method không có quyền truy cập đến các biến của đối tượng mà chỉ có thể truy cập đến các biến static của đối tượng. Bạn sẽ không thể sử dụng con trỏ $this để gọi đến các biến hay phương thức trong cùng class. Cho nên bạn nên cân nhắc sử dụng static method nếu muốn áp dụng các tính chất trong OOP.

3. Khi nào nên áp dụng static method.

    - Sử dụng như một phương thức khởi tạo đối tượng của class trong Singleton, bạn có thể xem bài viết về Singleton để hiểu rõ hơn.

    - Logic của phương thức đơn giản không cần sử dụng đến các biến hay phương thức non static.

    - Là những method ultilies (helper), bạn có thể sử dụng static method để tạo ra các phương thức global helper tiện ích, việc sử dụng static method trong trường hợp này cực kì thích hợp vì bạn sẽ dễ dàng gọi đến các phương thức mà không cần phải khởi tạo đối tượng của class.

Trên đây là những đúc kết của mình về static method, hy vọng sẽ giúp mọi người hiểu rõ hơn và sử dụng chúng một cách hiệu quả.


Nhận xét