php的学习笔记之面向对象(六)static

来源:互联网 发布:苹果time capsule知乎 编辑:程序博客网 时间:2024/04/30 03:41

有这样一个场景:我们把某班的所有同学都设为对象,他们都有一个班长属性,而且该班的班长为”K”,如果班长换成了”M”,那么要把学生的班长属性都改为”M”吗?
这是我们应该用到static关键字。

class students{    public static $monitor = "K";    public static function change($name){        self::$monitor = $name;    }}$kitt = new students();echo "Last monitor is ".students::$monitor."<br>";$kitt->change("M");echo "New monitor is ".students::$monitor."<br>";

输出的结果为:
Last monitor is K
New monitor is M

静态成员的一些特性:
静态属性用于保存类的共有数据
静态方法里面只能访问静态属性
静态成员不需要实例化对象就可访问,即不需创建对象就可以存在的
类的内部可以通过self::$property或者static::$property访问自身静态成员
可以通过parent::$property访问父类的静态成员
在外部可以用本类的类名以及子类的类名来访问本类的静态变量

需要注意的地方是:
static变量只能用类名来调用,不能用对象来调用 classname::$property
类方法可以用对象来调用也可以用类名来调用。classname:fucntionName()
静态方法不能访问非静态的数据
非静态的方法可以访问静态数据

1 0