您的位置:首页 > 编程语言 > PHP开发

php类中 self parent static的区别

2014-08-13 18:37 411 查看
self:意思是本类

parent意思是父类

static 


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

结合案例来理解 注意细节

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

?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  php类中 self parent st