php类中 self parent static的区别
self:意思是本类
parent意思是父类
static 
这三个关键用于在类中访问一些静态属性静态方法
结合案例来理解 注意细节
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58  | 
 <?php 
/************************************* 
 * self 在编译时已经定义好了self 的值 
 * ****/ 
class A{ 
public static $a = 'A'; 
public function getA(){ 
echo self::$a;//编译时已经定义好了self 在这里self是A 
} 
} 
class B extends A{ 
public static $a = 'B'; 
} 
echo B::$a;//输出B 
$v = new B(); 
$v->getA();//输出A 
/************************* 
 * parent 同self 
 * */ 
class AA{ 
public static $a = 'A'; 
} 
class BB extends AA{ 
public static $a = 'B'; 
public function getA(){ 
echo parent::$a; 
} 
} 
class CC extends BB{ 
public static $a = 'C'; 
} 
echo CC::$a;//输出C 
$v = new CC(); 
$v->getA();//输出A 
/***************************** 
 * static 与self,parent不同 类似动态的 
 * */ 
class AAA{ 
static protected $test="class a "; 
public function static_test(){ 
echo static::$test; // 输出 class b  
echo self::$test; // 输出 class a 
} 
} 
class BBB extends AAA{ 
static protected $test="class b ";//若没有重写父类的$test 上面static::$test结果为class a 
} 
$obj = new BBB(); 
$obj->static_test(); 
?> 
 | 
来自CODE的代码片
self_parent_static.php
                    
                
                
            
        
浙公网安备 33010602011771号