PHP- 复合数据类型-对象的属性(二)

2023-04-25 14:36:43 浏览数 (1)

受保护的属性

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

代码语言:javascript复制
class Person {
    protected $email;
}

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

代码语言:javascript复制
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.com
echo $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()方法来展示它。

php

0 人点赞