码迷,mamicode.com
首页 > Web开发 > 详细

php类的访问修饰符

时间:2017-06-24 10:05:55      阅读:237      评论:0      收藏:0      [点我收藏+]

标签:ext   继承   描述   输出   var_dump   property   efi   静态成员   class   

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继承:

私有成员可以被继承。

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

php类的访问修饰符

标签:ext   继承   描述   输出   var_dump   property   efi   静态成员   class   

原文地址:http://www.cnblogs.com/huodaihao/p/7072372.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!