Static in class
Static ก็คือการกำหนดให้ property หรือ method ให้กับ class นั้น ๆ และสามารถเรียกใช้ได้โดยไม่ต้องสร้าง object ของ class นั้น ๆ ก่อน
class Counter {
protected static $count = 0;
public static function increment() {
static::$count++;
}
public static function decrement() {
static::$count--;
}
public static function getCount() {
return static::$count;
}
}
How to use static
Counter::increment();
Counter::increment();
Counter::decrement();
echo "Count: " . Counter::getCount(); // 1
self & static
ใน method เราสามารถใช้ self แทน static ได้ และผลลัพธ์ที่ได้ ก็จะได้เหมือนกัน
class Counter {
protected static $count = 0;
public static function increment() {
self::$count++;
}
public static function decrement() {
self::$count--;
}
public static function getCount() {
return self::$count;
}
}