Hướng dẫn dùng statically trong PHP
Tip This page describes the use of the static keyword to define static methods and properties. static can also be used to define static variables and for late static bindings. Please refer to those pages for information on those meanings of static. Việc khai báo các thuộc tính và phương thức của lớp là static (tĩnh) sẽ giúp ta có thể truy cập các thành phần này mà không cần tạo thể hiện của lớp tương ứng. Một thuộc tính được khai báo là static thì không thể được truy cập thông qua thể hiện của đối tượng của lớp tương ứng (phương thức static thì có thể). Từ phiên bản PHP 4, nếu không khai báo tầm vực thì thuộc tính và phương thức của lớp sẽ mặc định có tầm vực là public. Phương thức tĩnhDo các phương thức được gọi mà không cần phải thông qua thể hiện của đối tượng, nên biến giả $this là không cần và không được sử dụng được trong phương thức tĩnh. Caution In PHP 5, calling non-static methods statically generates an Warning In PHP 7, calling non-static methods statically is deprecated, and will generate an Ví dụ về phương thức tĩnh
Thuộc tính tĩnhThuộc tính tĩnh không thể được truy cập thông qua việc sử dụng toán tử mũi tên ->. Cũng giống như bất kỳ biến tĩnh nào, các thuộc tính static chỉ có thể được khởi tạo bằng cách sử dụng một literal hoặc một hằng trước trước phiên bản PHP 5.6; các biểu thức là không được phép. Từ bản PHP 5.6 về sau thì các quy tắc tương tự được áp dụng như biểu thức hằng: một số biểu thức some limited expressions are possible, provided they can be evaluated at compile time. As of PHP 5.3.0, it's possible to reference the class using a variable. The variable's value cannot be a keyword (e.g. self, parent and static). Ví dụ về thuộc tính static
staticValue() {
Một số lưu ý sử dụng:Để kiểm tra xem một hàm nào đó có được gọi static hay không thì ta làm như sau:
Here statically accessed property prefer property of the class for which it is called. Where as self keyword enforces use of current class only. Refer the below example:
$test="class a"; webmaster at removethis dot weird-webdesign dot de ¶ 6 years ago
init($value) { self::$a = $value; } ssj dot narutovash at gmail dot com ¶ 8 years ago
davidn at xnet dot co dot nz ¶ 7 years ago
$variable; michalf at ncac dot torun dot pl ¶ 11 years ago
DerivedClassOne extends BaseClass{ tolean_dj at yahoo dot com ¶ 5 years ago
$_instance = NULL;/** gratcypalma at gmail dot om ¶ 5 years ago
getInitial() { Mirco ¶ 5 years ago
MyStaticClass b1tchcakes ¶ 3 months ago
a { use t; } |