我必须声明从父类继承的变量吗?(PHP 5.3.2)


Must I declare variables inherited from the parent class? (PHP 5.3.2)

我是写OOP的新手。

我认为父的属性会自动由子类继承,除非在子类中定义。

我有一个父类,如下所示:

class parentClass {
  public $name;
}
.
.
.
class childClass extends parentClass {
  protected $id;
  protected $frontend_name;
}

当我尝试加载它们时,出现此错误:

PHP 致命错误:对 childClass::$name 的访问级别必须是公共的(如在类 parentClass) 中的/var/wwww/model.php 第 2571 行

为什么?

使用代码:

class parentClass {
    public $name = 'foo';
}
class childClass extends parentClass {
    protected $id;
    protected $frontend_name;
}

从儿童班呼叫

$child = new childClass;
echo $child->name;

或从父类调用

$parent = new parentClass;
echo $parent->name;

结果:

foo

再次声明变量将引发错误,因为您已经从父类继承了它们。因此,不可以,您不得声明从父类继承的变量。