本文重点解决php类讲解10:PHP类的静态成员属性与静态方法s问题,希望能够帮助到你
声明类成员或方法为 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),如:
slef:: $country slef:: myCountry()在子类访问父类静态成员属性或方法,使用 parent::(注意不是 $parent),如:
parent:: $country parent:: myCountry()外部访问静态成员属性和方法为 类名/子类名:: ,如:
Person::$country Person::myCountry() Student::$country但静态方法也可以通过普通对象的方式访问。
本网刊登的文章均仅代表作者个人观点,并不代表本网立场。文中的论述和观点,敬请读者注意判断。