PHP OOP - 如何从子类

时间:2017-02-04 21:10:25

标签: php class oop inheritance

好的,这是修订版,对不起。我试图从一个孩子访问父类属性,也从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);

1 个答案:

答案 0 :(得分:-1)

在您的父类中,如果声明变量:

  1. private $var = 'abc'; - 只能从父类($this->var是父类的对象)通过$obj->var$obj访问它。
  2. protected $var = 'abc'; - 与private相同,加上可以从后代类
  3. 访问
  4. public $var = 'abc'; - 与protected相同,加上可以从其他类
  5. 访问