(资料图片)
受保护的属性
受保护的属性可以在类的内部和子类中被访问和修改,但不能在外部直接访问和修改。在类的定义中,使用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()
方法来展示它。