解决php类中private属性继承的问题
内容摘要
这篇文章主要为大家详细介绍了解决php类中private属性继承的问题,具有一定的参考价值,可以用来参考一下。
感兴趣的小伙伴,下面一起跟随php教程的小玲来看看吧!请仔细看这句话
感兴趣的小伙伴,下面一起跟随php教程的小玲来看看吧!请仔细看这句话
文章正文
这篇文章主要为大家详细介绍了解决php类中private属性继承的问题,具有一定的参考价值,可以用来参考一下。
感兴趣的小伙伴,下面一起跟随php教程的小玲来看看吧!
请仔细看这句话 如果父类有私有的属性。那么父类的方法只为父类的私有属性服务。下面通过一系列列子来加深理解.这个例子看起来很奇怪,在子类中重新定义了一个属性$sal,系统却返回了父类的属性。代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | <code> <? class employee{ private $sal =3000; //protected $sal=3000; public function getSal(){ return $this ->sal; } } class Manager extends employee { protected $sal =5000; public function getParentSal(){ //这里返回的是父类的private属性. return parent::getSal(); } } $manager = new Manager(); echo "PHP " .phpversion(). "<br>" ; echo $manager ->getSal(); echo "<br>" ; echo "parent's \$sal " . $manager ->getParentSal(); ?> </code> |
代码如下:
1 2 3 4 5 | <code> PHP 5.3.8 3000 parent's $sal 3000 </code> |
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | <code> <? class employee{ //private $sal=3000; protected $sal =3000; public function getSal(){ return $this ->sal; } } class Manager extends employee { protected $sal =5000; public function getParentSal(){ //这里返回的是父类的private属性. return parent::getSal(); } } $manager = new Manager(); echo "PHP " .phpversion(). "<br>" ; echo $manager ->getSal(); echo "<br>" ; echo "parent's \$sal " . $manager ->getParentSal(); ?> </code> |
代码如下:
1 2 3 4 5 | <code> PHP 5.3.8 5000 parent's $sal 5000 </code> |
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | <code> <? class employee{ private $sal =3000; public function getSal(){ return $this ->sal; } } class Manager extends employee { private $sal =5000; //重写过的方法 public function getSal(){ return $this ->sal; } public function getParentSal(){ //这里返回的是父类的private属性. return parent::getSal(); } } $manager = new Manager(); echo "PHP " .phpversion(). "<br>" ; echo $manager ->getSal(); echo "<br>" ; echo "parent's \$sal " . $manager ->getParentSal(); ?> </code> |
代码如下:
1 2 3 4 5 | <code> PHP 5.3.8 5000 parent's $sal 3000 </code> |
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <code> <? class employee{ private $sal =3000; public function getSal(){ return $this ->sal; } } class Manager extends employee { protected $sal =5000; public function getParentSal(){ return $this ->sal; } } $manager = new Manager(); echo "PHP " .phpversion(). "<br>" ; echo $manager ->getSal(); ?> </code> |
代码如下:
1 2 3 4 | <code> PHP 5.3.8 3000 </code> |
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <code> <? class employee{ protected $sal =3000; public function getSal(){ return $this ->sal; } } class Manager extends employee { protected $sal =5000; public function getParentSal(){ return $this ->sal; } } $manager = new Manager(); echo "PHP " .phpversion(). "<br>" ; echo $manager ->getSal(); ?> </code> |
代码如下:
1 2 3 4 | <code> PHP 5.3.8 5000 </code> |
注:关于解决php类中private属性继承的问题的内容就先介绍到这里,更多相关文章的可以留意
代码注释