Переход к PHP5 - Статические методы класса

ОГЛАВЛЕНИЕ

Статические методы класса

Статические методы класса могут быть вызванны непосредственно у класса, а не через его один из его объектов. Соответственно, указатель $this в статических методах недоступен.

Фактически, объявление класса со статическими методами является, в большей мере, методом группировки функций и общих для них констант и переменных. Например, столь известные в PHP функции соединения с MySQL можно было бы оформить в виде класса MySQL:

interface DatabaseInterface {
static function
connect($host, $user, $password);
static function
select_db($database);
static function
query($query);
static function
fetch_array();
static function
free_result($result);
static function
close($link);
}

class
MySQL implements DatabaseInterface {
static
CLIENT_COMPRESS = 1;
static
CLIENT_IGNORE_SPACE = 2;

...

static function
connect($host, $user, $password) {
...
}

static function
select_db($database) {
...
}
}

Применение такого подхода гарантирует, что все классы доступа к базе данных будут реализовывать один интерфейс (заменяемость), уменьшает вероятность конфликтности имен, упрощает существование нескольких версий класса доступа к базе и т.д.