如何在php oop {$ this不起作用}中将父函数转换为子函数

时间:2018-10-10 09:41:22

标签: php oop

我希望父亲电子邮件在子类功能中回显,但尚未给出任何结果。 我认为$ this变量是这样做的原因。 我不确定。 请告诉我解决方案是什么,并且家长班子对孩子班级优先权的解释将非常高兴...在此先感谢

我是OOP的新手,所以需要您的帮助。

class Father
{
    public $name;
    public $age;
    public $email;

    function setInfo($fatherEmail)
    {
        $this->email    = $fatherEmail;
    }

    function getEmail()
    {
        return $this->email;
    }
}

$info = new Father;
$info->setInfo('father@gmail.com');

class Child extends Father
{
    function __construct()
    {
        // here should be father@gmail.com (that is what I want)
        parent::getEmail();
    }

}

$child_info  =  new Child;

1 个答案:

答案 0 :(得分:-1)

您不需要该构造函数。您也不需要实例化基类。看这里:

<?php

class Father
{
    public $name;
    public $age;
    public $email;

    function setEmail($fatherEmail)
    {
        $this->email    = $fatherEmail;
    }

    function getEmail()
    {
        return $this->email;
    }
}



class Child extends Father
{

}

$child_info  =  new Child();
$child_info->setEmail('father@gmail.com');

echo $child_info->getEmail();

看到它在这里https://3v4l.org/CDfnM

还可以考虑声明函数的可见性,并对属性进行私有化:

class Father
{
    private $name;
    private $age;
    private $email;

    public function setEmail($fatherEmail)
    {
        $this->email    = $fatherEmail;
    }

    public function getEmail()
    {
        return $this->email;
    }
}

具有private vars意味着只有该类可以访问它。具有protected var和函数意味着它们也可以在子类中访问。 public对所有人开放。