php类的访问修饰符

Public, protected, private

用来描述:

成员,在源代码中的哪些位置可以访问 。

Public:公共的:类内,类外,继承链类内

Protected: 类内,继承链类内。

Private:本类内。

一:Private:本类内。

<?php
class H {
// 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 "<hr/>";
var_dump($o);//输出:object(K)#1 (1) { ["p":"Z":private]=> string(5) "value" }
$o->ZgetP(); //输出: static-value

 

 

二 Protected: 类内,继承链类内。(在类的继承的体系内都可以调用)

<?php
class H {
// 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 "<hr/>";
var_dump($o);//输出:object(K)#1 (1) { ["p":"Z":private]=> string(5) "value" }
$o->ZgetP(); //输出: static-value

 

php继承:

私有成员可以被继承。

如果是静态成员,则父类不能访问子类定义的静态成员。

转载于:https://www.cnblogs.com/huodaihao/p/7072372.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值