Ví dụ về static trong OOP trong PHP
Giả sử chúng ta có lớp User như sau:
<?php
class User
{
public $name;
public function __construct($name)
{
$this->name = $name;
}
}
?>
Hãy làm cho lớp này có thể đếm số lượng đối tượng của chính nó. Để làm điều này, hãy tạo một thuộc tính tĩnh count. Ban đầu gán cho nó giá trị 0, và khi tạo mỗi đối tượng mới, chúng ta sẽ tăng giá trị này lên 1.
Chúng ta sẽ tăng giá trị bộ đếm trong phương thức khởi tạo của đối tượng:
<?php
class User
{
public static $count = 0; // bộ đếm đối tượng
public $name;
public function __construct($name)
{
$this->name = $name;
// Tăng bộ đếm khi tạo đối tượng:
self::$count++;
}
}
?>
Hãy kiểm tra xem mọi thứ có hoạt động không:
<?php
$user1 = new User('user1');
echo User::$count; // sẽ hiển thị 1
$user2 = new User('user2');
echo User::$count; // sẽ hiển thị 2
?>
Hãy làm cho bộ đếm của chúng ta thành private. Hãy để giá trị của nó có thể được lấy thông qua một phương thức đặc biệt.