首页 > 解决方案 > PHP继承:如何从继承的父方法访问子属性?

问题描述

例如:

<?php 

class animal {  
  private $property = "animal";
  public function whoami() {
    return "I am an " . $this->property . ".\n";
  }
}

class emu extends animal {
  private $property = "emu";
}

$emu = new emu;
echo $emu->whoami(); // "I am an animal" 

上面的代码会报告“我是一只动物”,但我希望它报告“我是一只鸸鹋”,而不需要重写 whoami() 方法。

有没有办法在 PHP 中做到这一点?

标签: phpoopinheritance

解决方案


正如@cOle2 在上面的评论中回答的那样:

私有属性只能由定义该属性的类访问。我认为受保护的是你在这里所追求的。见php.net/manual/en/language.oop5.visibility.php


推荐阅读