1 //静态关键字的使用static
2 //类里面的普通成员是属于对象的,不是属于类的(调用的时候是用对象调用)
3 //什么叫做静态的:类静态成员是属于类的,不是属于每个对象的
4 //定义静态成员用static关键字修饰
5 //静态(函数)方法里面无法调用普通成员
6 //静态(函数)方法可以调用静态成员,使用self关键字来调用
7 //self代表该类,$this代表该对象
8
9 class Person
10 {
11 public static $nation; //静态成员变量
12 public $name;
13 public $sex;
14 private $age;
15
16 function __construct($name="",$sex="男",$age=12) //构造函数
17 {
18 $this->name=$name;
19 $this->sex=$sex;
20 $this->age=$age;
21 }
22
23 static function jump() //静态方法不能调用普通成员,只能调用静态成,使用self::
24 {
25 echo "民族:".self::$nation;
26 }
27
28 function say() //普通方法(函数)也能调用静态成员,使用self::$属性名
29 {
30 echo "民族:".self::$nation.";姓名:".$this->name.";年龄:".$this->age;
31 }
32 }
33
34 $p=new Person("孔二","男",30);
35
36 Person::$nation="汉族"; //类外部调用静态成员与函数 类名::$属性名
37 Person::jump(); //类名::静态方法名()
38 echo "<br>";
39 $p->say();
40 var_dump($p);
41
42
43 class China extends Person //编写一个子累,关键字:extends
44 {
45 public static $date;
46 static function run()
47 {
48 echo "民族:".self::$nation.";日期:".self::$date;
49 }
50 function say() //子类对父类方法的重写
51 {
52 parent::jump();
53 echo $this->name."说汉语";
54 }
55 }
56
57 $c=new China("张小五","女",36);
58 China::$date="2016-4-29";
59 China::run();
60 echo "<br>";
61 $c->say();
62 var_dump($c);