ตัวอย่างการใช้ static ใน OOP ใน PHP
สมมติว่าเรามีคลาส User แบบนี้:
<?php
class User
{
public $name;
public function __construct($name)
{
$this->name = $name;
}
}
?>
ลองทำให้คลาสนี้นับจำนวนอ็อบเจ็กต์ของตัวเอง
เพื่อการนี้ สร้างคุณสมบัติแบบ static count ขึ้นมา
ตอนแรกกำหนดค่าเป็น 0 และเมื่อมีการสร้าง
อ็อบเจ็กต์ใหม่แต่ละครั้ง ก็เพิ่ม
ค่านี้ขึ้น 1
เราจะเพิ่มค่าของตัวนับของเรา ในคอนสตรัคเตอร์ของอ็อบเจ็กต์:
<?php
class User
{
public static $count = 0; // ตัวนับอ็อบเจ็กต์
public $name;
public function __construct($name)
{
$this->name = $name;
// เพิ่มตัวนับเมื่อสร้างอ็อบเจ็กต์:
self::$count++;
}
}
?>
ลองตรวจสอบว่าทุกอย่างทำงาน:
<?php
$user1 = new User('user1');
echo User::$count; // จะแสดง 1
$user2 = new User('user2');
echo User::$count; // จะแสดง 2
?>
ทำให้ตัวนับของเราเป็น private ให้สามารถรับค่าของมันได้ ผ่านเมธอดพิเศษ