我目前是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');
…突然之间就有意义了