(资料图片仅供参考)

受保护的属性

受保护的属性可以在类的内部和子类中被访问和修改,但不能在外部直接访问和修改。在类的定义中,使用protected关键字来定义受保护的属性。例如,下面的代码定义了一个Person类,其中包含一个受保护的属性$email

class Person {    protected $email;}

由于受保护的属性不能在外部直接访问,因此我们需要使用方法来访问和修改它的值。例如,我们可以定义一个setEmail()方法来设置邮箱,以及一个getEmail()方法来获取邮箱:

class Person {    protected $email;        public function setEmail($email) {        $this->email = $email;    }        public function getEmail() {        return $this->email;    }}class Student extends Person {    public function showEmail() {        echo $this->email;    }}$p1 = new Person();$p1->setEmail("alice@example.com");$s1 = new Student();$s1->setEmail("bob@example.com");echo $p1->getEmail(); // 输出:alice@example.comecho $s1->getEmail(); // 输出:bob@example.com$s1->showEmail(); // 输出:bob@example.com

在上面的代码中,我们定义了一个Person类和一个Student类。在Person类中,我们定义了一个受保护的属性$email,以及一个setEmail()方法和一个getEmail()方法。在Student类中,我们定义了一个showEmail()方法,用于展示受保护的属性$email。然后,我们创建了一个Person对象和一个Student对象,并使用setEmail()方法来设置它们的邮箱。在外部,我们可以通过getEmail()方法来获取它们的邮箱。在Student类中,我们使用$this->email来访问受保护的属性$email,并通过showEmail()方法来展示它。

推荐内容