标签:
self:本类,注意不要理解为本对象
parent:父类
在引用自身的静态属性/静态方法时,以及父类的静态属性/方法时可以用到
用法
self::$StaticProperty
self::StaticMethod
parent::$StaticProperty
parent::StaticMethod
比如
1 <?php 2 class Human{ 3 static public $head = 1; 4 public function say(){ 5 echo self::$head,‘<br />‘; 6 } 7 public function hi(){ 8 echo ‘hello<br />‘; 9 } 10 } 11 class Stu extends Human{ 12 static public $head = 2; 13 public function say(){ 14 echo self::$head,‘<br />‘; 15 echo parent::$head,‘<br />‘; 16 } 17 public function hi(){ 18 parent::hi(); 19 } 20 } 21 echo Human::$head,‘<br />‘; 22 $lisi = new Human(); 23 $lisi->say(); 24 25 $ming = new Stu(); 26 $ming->say(); 27 $ming->hi(); 28 29 //用$this,还是用parent 30 class a{ 31 public function a1(){ 32 echo ‘this is class function a1()<br />‘; 33 } 34 } 35 class b extends a{ 36 public function b1(){ 37 $this->a1(); 38 } 39 public function b2(){ 40 parent::a1(); 41 } 42 } 43 $a = new a(); 44 $b = new b(); 45 $b->b1(); 46 $b->b2(); 47 /**** 48 上面2个调用,显示效果是一样的 49 如果从速度角度上看,理论上parent::快一点 50 因为$this在子类寻找a1方法,找不到,再去其父类找 51 52 但是从面向对象角度看,继承过来的,就是自己的 53 $this更符合面向对象的思想 54 55 举一个反例 56 class a{ 57 } 58 59 class b extends a{ 60 } 61 62 class c extends b{ 63 } 64 ... 65 ... 66 class f extends e{ 67 parent::parent::parent:: 68 总不能这么写,当然要访问父类的private属性就要用到parent:: 69 } 70 ****/ 71 ?>
标签:
原文地址:http://www.cnblogs.com/museluo/p/4532736.html