好的,这是修订版,对不起。我试图从一个孩子访问父类属性,也从ouside访问,但大多没有成功。如何从继承的子代访问父项中的变量,对该主题有许多令人困惑的答案。我需要为此调用构造吗?如果我决定在对象已经实例化之后传递值,该怎么办?如果我将变量声明为静态,我不能从外部传递值。何时使用parent ::,self ::和$ this->。访问单个类/对象时,一切看起来都比较简单,但是当涉及到孩子时,任何事情都无法工作。谢谢,这里只是我想要实现的示例代码。
define('BR', '<br>');
class User {
public $age;
public $name = null;
public function enterValue($i) {
$this->name = $i;
}
public function getOut() {
echo $this->name;
}
}
class Teacher extends User {
/* public function school() { doesn't work
return parent::$name;
}
*/
}
$person = new User();
$person->age = 25;
$person->enterValue('Michael');
$math = new Teacher();
echo $math->name . BR;
echo $math->age . BR;
$math->getOut();
// echo $math->school(); doesn't work
var_dump($math);
var_dump($person);
答案 0 :(得分:-1)
在您的父类中,如果声明变量:
private $var = 'abc';
- 只能从父类($this->var
是父类的对象)通过$obj->var
或$obj
访问它。protected $var = 'abc';
- 与private
相同,加上可以从后代类public $var = 'abc';
- 与protected
相同,加上可以从其他类