前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PHP- 复合数据类型-对象的属性(二)

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

原创
作者头像
堕落飞鸟
发布2023-04-25 14:36:43
3970
发布2023-04-25 14:36:43
举报
文章被收录于专栏:飞鸟的专栏飞鸟的专栏

受保护的属性

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 受保护的属性
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档