PHP中带有静态属性和方法的OOP编程示例


Examples of OOP programming with static properties and methods in PHP

我目前是PHP OOP编程的初学者,想知道是否有人可以提供一个例子,说明如何使用静态属性和方法在实际的web应用程序中是有用的。

尽管静态统计可能存在评论中指出的问题,但它们确实有一些用途。

我发现一个非常有用的是"命名构造函数"。

一个类通常只有一个构造函数。但是,如果可以用几种不同的方式初始化类呢?

例如,也许您的应用程序支持使用电子邮件地址或Facebook用户ID创建用户…

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');

…突然之间就有意义了