php类的访问修饰符
2021-07-15 23:04
标签:ext 继承 描述 输出 var_dump property efi 静态成员 class Public, protected, private 用来描述: 成员,在源代码中的哪些位置可以访问 。 Public:公共的:类内,类外,继承链类内 Protected: 类内,继承链类内。 Private:本类内。 一:Private:本类内。 class H { 二 Protected: 类内,继承链类内。(在类的继承的体系内都可以调用) class H { php继承: 私有成员可以被继承。 如果是静态成员,则父类不能访问子类定义的静态成员。 php类的访问修饰符 标签:ext 继承 描述 输出 var_dump property efi 静态成员 class 原文地址:http://www.cnblogs.com/huodaihao/p/7072372.html
// public function HgetP () {
//echo $this->p;
// echo self::$sp;
// }
public static function HgetP () {
// echo $this->p;
echo self::$sp;
}
}
class Z extends H {
//protected $p = ‘value‘;
private $p = ‘value‘; //$p是私有的,只能在本类内部调用
public static $sp = ‘static-value‘;
// public function ZgetP () {
// echo self::$sp;
// }
public static function ZgetP () {
// echo $this->p;
echo self::$sp;
}
}
class K extends Z {
public function KgetP () {
echo $this->p;
// echo self::$sp;
}
//public static function KgetP () {
//echo $this->p;
//echo self::$sp;
//}
}
//echo H::HgetP();
//echo Z::ZgetP();
//echo K::KgetP();
$o = new K;
$o->KgetP();//输出:Notice: Undefined property: K::$p
echo "
";
var_dump($o);//输出:object(K)#1 (1) { ["p":"Z":private]=> string(5) "value" }
$o->ZgetP(); //输出: static-value
// public function HgetP () {
//echo $this->p;
// echo self::$sp;
// }
public static function HgetP () {
// echo $this->p;
echo self::$sp;
}
}
class Z extends H {
protected $p = ‘value‘; //$p是受保护的,在本类,本类的继承体系内部调用。
//private $p = ‘value‘; //$p是私有的,只能在本类内部调用
public static $sp = ‘static-value‘;
// public function ZgetP () {
// echo self::$sp;
// }
public static function ZgetP () {
// echo $this->p;
echo self::$sp;
}
}
class K extends Z {
public function KgetP () {
echo $this->p;
// echo self::$sp;
}
//public static function KgetP () {
//echo $this->p;
//echo self::$sp;
//}
}
//echo H::HgetP();//如果是静态成员,则父类不能访问子类定义的静态成员。
//echo Z::ZgetP();
//echo K::KgetP();
$o = new K;
$o->KgetP();//输出:value
echo "
";
var_dump($o);//输出:object(K)#1 (1) { ["p":"Z":private]=> string(5) "value" }
$o->ZgetP(); //输出: static-value