How can I access property var
in class OtherClass
from inside class like the method myFunc (parent::myFunc();)
<?php
class MyClass
{
public $var = 'A';
protected function myFunc()
{
echo "MyClass::myFunc()\n";
}
}
class OtherClass extends MyClass
{
public $var = 'B';
// Override parent's definition
public function myFunc()
{
// But still call the parent function
parent::myFunc();
echo "OtherClass::myFunc()\n";
}
}
$class = new OtherClass();
$class->myFunc();
答案 0 :(得分:3)
你不能,因为没有单独的变量。 OtherClass
扩展MyClass
因此OtherClass
包含所有MyClass功能+来自OtherClass
的其他内容,但仍然可以访问父级方法(通过parent::
)非常有意义(即允许链接)然后拥有多个同名的变量会导致巨大的头痛而不会带来任何好处。
答案 1 :(得分:0)
为var。
创建getter和setter方法class MyClass
{
private $var = 'A';
public function getVar()
{
return $this->var;
}
public function setVar($var)
{
$this->var = $var;
}
protected function myFunc()
{
echo "MyClass::myFunc()\n";
}
}
如果你没有覆盖那里的getter和setter,你可以在$this->getVar()
中使用OtherClass
。或者如果您这样做,可以在parent::getVar()
内使用OtherClass
。