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

时间:2012-05-06 03:52:31

标签: php oop

我是编写OOP的新手。

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

我有一个父类,如:

class parentClass {
  public $name;
}
.
.
.

class childClass extends parentClass {
  protected $id;
  protected $frontend_name;
}

当我尝试加载它们时,我收到此错误:

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

为什么?

2 个答案:

答案 0 :(得分:2)

使用代码:

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

答案 1 :(得分:-1)

再次声明变量会抛出错误,因为您已经从父类继承了它们。所以,不,你不能声明从父类继承的变量。