开启辅助访问
帐号登录 |立即注册

PHP 类的静态成员属性与静态方法 static 关键字

 
静态 static
声明类成员或方法为 static ,就可以不实例化类而直接访问,不能通过一个对象来访问其中的静态成员(静态方法除外)。静态成员属于类,不属于任何对象实例,但类的对象实例都能共享。

例子:
<?php
Class Person{
    // 定义静态成员属性
    public static $country = "中国";
    // 定义静态成员方法
    public static function myCountry() {
        // 内部访问静态成员属性
        echo "我是".self:: $country."人<br />";
    }
}
class Student extends Person {
    function study() {
        echo "我是". parent:: $country."人<br />";
    }
}
// 输出成员属性值
echo Person:: $country."<br />";
// 输出:中国
$p1 = new Person();
//echo $p1->country;
// 错误写法
// 访问静态成员方法
Person::myCountry();
// 输出:我是中国人
// 静态方法也可通过对象访问:
$p1->myCountry();
// 子类中输出成员属性值
echo Student:: $country."<br />";
// 输出:中国
$t1 = new Student();
$t1->study();
// 输出:我是中国人
?>
运行该例子,输出:
中国
我是中国人
我是中国人
中国
我是中国人

小结
在类内部访问静态成员属性或者方法,使用 self::(注意不是 $slef),如:
self:: $country
self:: myCountry()

在子类访问父类静态成员属性或方法,使用 parent::(注意不是 $parent),如:
parent:: $country
parent:: myCountry()

外部访问静态成员属性和方法为 类名/子类名:: ,如:
Person:: $country
Person::myCountry()
Student:: $country
但静态方法也可以通过普通对象的方式访问。
以上就是本文的全部内容,感谢大家支持JScript之家——编程学习者社区!



回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

友情链接
  • 艾Q网

    提供设计文章,教程和分享聚合信息与导航工具,最新音乐,动漫,游戏资讯的网站。