静态关键字static
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);