PHP 类的静态成员属性与静态方法 static 关键字
静态static
把类成员或方法申明为static,就可以不实例化类而直接访问,不能通过一个对象实例来访问静态成员(静态方法除外),静态成员属于类,不属于任何对象实例,但类的对象实例都能共享。
例子:
class Person{
public static $country = '中国';
static function say(){
//内部访问静态成员属性
echo "我是".self::$country."人<br />";
}
}
class Worker extends Person{
function study(){
echo "我也来自".parent::$country."<br />";
}
}
echo Person::$country."<br />"; //中国
Person::say(); //我是中国人
$p = new Person();
//$p->country; 错误写法!!!
$p->say(); //我是中国人
echo Worker::$country."<br />"; //中国
$p2 = new Worker();
$p2->study(); //我也来自中国
运行以上代码,输出:
中国
我是中国人
我是中国人
中国
我也来自中国
小结:
在类的内部访问静态成员或属性时,使用self::
(注意不是$self),如:
self::$country
self::say()
在子类内部访问父类属性方法时,使用parent::
(注意不是$parent::),如:
parent::$country
parent::say()
外部访问静态成员或方法时,使用 类名/子类名::,如:
Person::$country
Person::say()
Worker::study()
需要注意的是,静态方法可以通过普通对象的形式访问!
最后更新于 2017-02-17 14:56:01 并被添加「」标签,已有 359 位童鞋阅读过。
本站使用「署名 4.0 国际」创作共享协议,可自由转载、引用,但需署名作者且注明文章出处
此处评论已关闭