Ключевое слово static онлайн урок.


Ключевое слово static используется для доступа к статическим свойствам и методам из контекста самого класса изнутри класса (например как self, parent).

Для чего это нужно? Рассмотрим пример:

class A
{
public static function test()
{
echo 1;
}

public static function get()
{
self::test();
}
}

class B extends A
{
public static function test()
{
echo 2;
}
}

B::get(); // 1


На экран будет выведено именно 1. Т.е. при обращении к test() в унаследованном методе get() класса B мы вызвали именно метод test() класса A, несмотря на то, что он тоже был унаследован B. Для того, чтобы вызвать метод test() класса В как раз необходимо использовать ключевое слово static вместо self. Тогда будет вызван не тот метод, где формально это было записано, а унаследованный статический метод.