Các thuộc tính, phương thức trong lớp khai báo với từ khóa static là một đặc tính hữu dụng trong PHP. Phương thức / thuộc tính tĩnh (static) thì nó có thể truy cập trực tiếp mà không phải tạo đối tượng của lớp. Lớp là tĩnh nếu tất cả các phương thức và thuộc tĩnh là tĩnh.

Biến - Thuộc tính tĩnh (static)

Một thuộc tính (biến) khai báo là static có thể truy cập bằng ký hiệu phạm vi ::

<?php
    class testStaticVar
    {
        public static $a;//biến tĩnh
    }
    testStaticVar::$a = 5;
    echo testStaticVar::$a;
?>

Bên trong một hàm của class bạn có thể truy cập biến tĩnh bằng từ khóa self::tên_biến_tĩnh, để truy cập tới biến của lớp cha nó kế thừa dùng parent::tên_biến_tĩnh

<?
class testParent
{
    public static $var1;
}

class testChild extends testParent
{
    public static $var2;
    function testFunction()
    {
        self::$var2 = 3;
        parent::$var1 = 5;
    }
}
?>

Sử dụng biến tĩnh là cách để lưu giữ/trao đổi giá trị của một biến thông qua các đối tượng khác nhau. Ví dụ biến self::$bien ở đây là lưu trữ chung cho các lớp khác nhau tạo ra từ Test

<?php
class Test {
    public static $bien = 0;
    public function __construct()
    {
        self::$bien += 1;
        echo self::$bien;
    }

}

$test1 = new Test(); //In ra 1
$test2 = new Test(); //In ra 2
?>

Phương thức tĩnh

Cách tạo ra phương thức tĩnh và cách gọi phương thức tính tương tự như thuộc tính tĩnh, bằng cách sử dụng từ khóa static khi khai báo và :: khi gọi hàm. Với hàm tĩnh bạn không sử dụng con trỏ $this để gọi trực tiếp.

<?php
class testStaticMethod {
    public static function test($pr1, $pr2) {
        echo $pr1.'-'.$pr2;
    }
}

testStaticMethod::test('Học', 'PHP');
?>
Đăng ký theo dõi ủng hộ kênh