我目前是PHP OOP编程的初学者,并且想知道是否有人可以提供一个如何使用静态属性和方法在实际Web应用程序中有用的示例。
答案 0 :(得分:5)
虽然静态可能会出现问题中指出的问题,但它们确实有一些用途。
我发现非常有用的是“命名构造函数”。
通常一个类只有一个构造函数。但是,如果可以通过几种不同的方式初始化课程呢?
例如,您的应用程序可能支持使用电子邮件地址创建用户,或者使用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');
......它突然变得更有意义。