php类中 self parent static的区别

self:意思是本类

parent意思是父类

static 

这三个关键用于在类中访问一些静态属性静态方法


结合案例来理解 注意细节

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();

?>

你可能感兴趣的:(php)