Master the use of the static keyword in PHP with clear examples. Learn how it works in functions, classes, and inheritance, including the key difference between self:: and static::.
The static keyword in PHP is used in three main ways:
1. Static Variables in Functions
Static variables retain their values between function calls.
function counter() {
static $count = 0;
$count++;
echo $count;
}Each call to counter() will increment the same $count.
2. Static Properties and Methods
Used when you want to access class members without creating an object.
class Math {
public static $pi = 3.14;
public static function getPi() {
return self::$pi;
}
}
echo Math::getPi(); // 3.143. Late Static Binding
static:: respects the runtime (called) class, unlike self::, which uses the defining class.
class ParentClass {
protected static function who() {
echo "Parent\n";
}
public static function test() {
static::who(); // Late static binding
}
}
class ChildClass extends ParentClass {
protected static function who() {
echo "Child\n";
}
}
ChildClass::test(); // Outputs: Childself:: vs static::
self::= early binding (class where method is defined).static::= late binding (class that was called).
Use static:: when working with inheritance and overridden methods.
Conclusion:
The static keyword is versatile in PHP, helping manage memory in functions, class-level utilities, and polymorphic behavior in OOP.
Happy Coding! 😊