Примеры ООП программирования со статическими свойствами и методами в PHP - PullRequest
1 голос
/ 05 января 2012

В настоящее время я новичок в программировании ООП на PHP, и мне было интересно, кто-нибудь может привести пример того, как использование статических свойств и методов полезно в реальных веб-приложениях.

1 Ответ

5 голосов
/ 05 января 2012

Хотя у статики могут быть проблемы, как указано в комментариях, у них есть несколько применений.

Тот, который я нашел весьма полезным, это "именованные конструкторы".

Обычно класс имеет единственный конструктор. Но что, если класс можно инициализировать несколькими различными способами?

Например, возможно, ваше приложение поддерживает создание пользователей с адресом электронной почты или из идентификатора пользователя Facebook ...

class User {
    public function __construct($emailOrFbUserId) { } 
}

Как вы можете видеть выше, может показаться, что параметр в конструкторе был немного запутанным при использовании класса.

Вместо этого, написав это так ...

class User {
    private function __construct() { }

    public static function fromEmailAddress($email) {
        $user = new User();

        //assuming there's a private field called email
        $user->email = $email;
        return $user
    }

    public static function fromFacebookUserId($id) {
        ...
    }
}

//usage example
$user = User::fromEmailAddress('foo@bar.com');

... и это внезапно приобретает гораздо больший смысл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...