前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >PHP- 复合数据类型-对象的访问控制

PHP- 复合数据类型-对象的访问控制

原创
作者头像
堕落飞鸟
发布于 2023-04-25 16:05:00
发布于 2023-04-25 16:05:00
41300
代码可运行
举报
文章被收录于专栏:飞鸟的专栏飞鸟的专栏
运行总次数:0
代码可运行

在 PHP 中,我们可以使用访问控制关键字publicprotectedprivate来控制对象的属性和方法的访问权限。这些关键字决定了哪些成员可以被外部访问,哪些成员只能在类内部访问。具体的访问控制规则如下:

  • public成员可以被任何代码访问,包括类内部、类外部和子类中。
  • protected成员可以在类内部和子类中被访问,但在类外部无法被访问。
  • private成员只能在类内部被访问,包括子类中也无法访问。

访问控制修饰符后面跟着的属性或方法就会受到这个访问控制的限制。下面我们来看一下示例代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Person {
  public $name;
  protected $age;
  private $password;
  
  function __construct($name, $age, $password) {
    $this->name = $name;
    $this->age = $age;
    $this->password = $password;
  }
  
  public function showName() {
    return $this->name;
  }
  
  protected function showAge() {
    return $this->age;
  }
  
  private function showPassword() {
    return $this->password;
  }
}

class Employee extends Person {
  public function showInfo() {
    return "Name: " . $this->showName() . "<br>" .
           "Age: " . $this->showAge() . "<br>" .
           "Password: " . $this->showPassword() . "<br>"; // 私有方法不可访问
  }
}

$person = new Person("Tom", 25, "123456");
echo $person->name . "<br>"; // 公共属性可以直接访问
echo $person->age . "<br>"; // 受保护属性不可以在外部访问
echo $person->password . "<br>"; // 私有属性不可以在外部访问

$employee = new Employee("Alice", 30, "654321");
echo $employee->showInfo(); // 可以通过子类访问受保护和公共方法,但是不能访问私有方法

在上述示例代码中,我们定义了一个 Person 类,包括了公共、受保护和私有的属性和方法。然后我们又定义了一个 Employee 类,它继承自 Person 类。在 Employee 类中,我们定义了一个 showInfo() 方法,它可以调用 Person 类中的公共和受保护的方法来显示信息,但不能调用私有方法。

在示例代码的最后,我们创建了一个 Person 对象和一个 Employee 对象,分别用来演示访问公共、受保护和私有属性和方法的限制。

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验