HomeLập trình

Khái niệm static và const trong PHP – Bài 6

Like Tweet Pin it Share Share Email

Ở phần này, ta sẽ tìm hiểu về phương thức tĩnh, thuộc tĩnh trong hướng đối tượng. Qua đó ta cũng phân biệt được sự khác nhau giữa thuộc tính thường và thuộc tính tĩnh. Đồng thời cũng nắm thêm về khái niệm hằng trong hướng đối tượng sẽ vận dụng như thế nào.

Phương thức tĩnh – Thuộc tính tĩnh – Hằng

Ta khai báo: 

Static $name  // biến là thuộc tính tĩnh
Static function test(){   ...  } // phương thức tĩnh

 Để có thể sử dụng và truy cập được các thuộc tính hay phương thức tĩnh ta phải sử dụng từ khóa:

Self::$name;
Self::test(); 

 Đó cũng là sự khác biệt giữa các thuộc tính và phương thức thường với tĩnh.

 => Sự khác biệt giữa thuộc tính – phương thức tĩnh với thường là gì?
– Bản chất thuộc tính tĩnh là chúng ta có thể truy xuất mà không cần khởi tạo một đối tượng chỉ cần chúng ta biết tên lớp:

ABC::$name;
ABC::test();

 – Phương thức thường và thuộc tính thường khi chúng ta muốn sử dụng bắt buộc phải khởi tạo đối tượng và từ đối tượng mới có thể truy cập được các phương thức và thuộc tính này.

Ví dụ:

(*) Phương thức và thuộc tính thông thường

Kết quả: ABCDABCD

(*) Phương thức và thuộc tính TĨNH
Đối với phương thức và thuộc tĩnh tĩnh chúng ta không cần phải khởi tạo đối tượng như hình dưới đây

Như vậy thuộc tính tĩnh khác thuộc tính thường ở những điểm sau:
 – Thuộc tính tĩnh khi muốn truy cập, sử dụng các phương thức khác phải sử dụng từ khóa Self, thay vì thuộc tính thường sử dụng từ khóa This.
 – Bản thân thuộc tính tĩnh không cần khởi tạo đối tượng vẫn có thể truy cập được những thuộc tĩnh này, thậm chí phương thức cũng vậy.

Vậy khi nào chúng ta nên sử dụng thuộc tính tĩnh?
– Khi thuộc tính hay một phương thức mà chúng ta có nhu cầu sử dụng nhiều, khi chúng ta sử dụng mỗi lần lại phải khởi tạo nhiều lần tốn rất nhiều tài nguyên thì chúng ta phải gán nó về thuộc tính hay phương thức tĩnh để giải quyết bài toán một cách dễ dàng.

Hằng thì sao?
 Chúng ta sử dụng từ khóa const để khai báo Hằng.
ví dụ:

 const RED;

muốn sử dụng Hằng trong những phương thức thì chúng ta dùng từ khóa Self giống như thuộc tính tĩnh.

Self:RED;

ví dụ:

 ABC::RED;

 ==> Vậy Hằng và thuộc tính tĩnh khác nhau ở điểm nào?
– Thuộc tính tĩnh thì dấu * vẫn là một thuộc tính, khi nó là thuộc tính thì nó vẫn có thể thay đổi được.
– Trong đó Hằng là loại giá trị bất biến mà nó không thể thay đổi được.

Ví dụ cách sử dụng Hằng:

Comments (0)

Leave a Reply

Your email address will not be published. Required fields are marked *