思考案例
静态成员
类中的成员加入static修饰符,即是静态成员.可以直接使用类名+静态成员名访问此静态成员,因为静态成员存在于内存,非静态成员需要实例化才会分配内存,所以静态方法不能访问非静态的成员.因为静态成员存在于内存,所以非静态方法可以直接访问类中静态的成员.
非成静态员
所有没有加Static的成员都是非静态成员,当类被实例化之后,可以通过实例化的类名进行访问..非静态成员的生存期决定于该对象的生存期..而静态成员则不存在生存期的概念,因为静态成员始终驻留在内容中.
class user {
private static $count = 0;
public function __construct() {
self::$count = self::$count + 1;
}
public function getCount() {
return self::$count;
}
public function __destruct() {
self::$count = self::$count - 1;
}
}
$user1 = new user();
$user2 = new user();
$user3 = new user();
echo $user1->getCount();
echo "";
unset($user3);
echo $user1->getCount();