Код IT
← Каталог

Объектно-ориентированное программирование в PHP — Статические члены — поведение и данные на уровне класса

Фрагмент из «Объектно-ориентированное программирование в PHP»: Статические члены — поведение и данные на уровне класса.

PHP main.php
class Base {
    protected static string $name = 'Base';

    public static function who(): string {
        return self::$name;
    }

    public static function who2(): string {
        return static::$name;
    }
}

class Child extends Base {
    protected static string $name = 'Child';
}

echo Base::who();   // → "Base"
echo Child::who();  // → "Base"   (self → Base)
echo Child::who2(); // → "Child"  (static → Child)
class Base {
    protected static string $name = 'Base';

    public static function who(): string {
        return self::$name;
    }

    public static function who2(): string {
        return static::$name;
    }
}

class Child extends Base {
    protected static string $name = 'Child';
}

echo Base::who();   // → "Base"
echo Child::who();  // → "Base"   (self → Base)
echo Child::who2(); // → "Child"  (static → Child)