在PHP类内,我们常常看到很多属性或方法被这三种访问关键字所修饰,它们分别是publicprotectedprivate

那么这些访问关键字分别有什么作用呢?它们分别指定类内属性或方法的访问范围,让我们通过一张表格来总览一下:

关键字类内部访问子类访问外部访问
public√允许√ 允许√ 允许
protected√ 允许√ 允许× 不允许
private√ 允许× 不允许× 不允许

简单说就是

public(公共):所有人都可以访问

protected(受保护):家族内部可以访问(自己和子类)

private(私有):只有自己可以访问

<?php 
/* 1. 准备一个Dotcpp_user类 */
class Dotcpp_user
{
    // 2. 分属性(成员变量)
    public $nickName;//公有
    protected $signature;//受保护
    private $grade;//私有
    public $degree;
      
    // 3. 构造函数:创建对象时初始化属性
    public function __construct($nickName, $signature, $grade, $degree) {//在这里指定参数(参数1,参数2,···)
       $this->nickName = $nickName;
        $this->signature = $signature;
        $this->grade = $grade;
        $this->degree = $degree;
    }
}
/* 4. 创建一个Dotcpp_user,然后调用其属性 */
$dotcpp_user=new Dotcpp_user('user','Do coding!','100','p1');
/* 尝试调用 */
echo $dotcpp_user->nickName .'<br>';//输出“user”
echo $dotcpp_user->signature .'<br>';//报错
echo $dotcpp_user->grade .'<br>';//报错
?>

只有public关键字修饰的属性或方法才能被外界访问。

总结:publicprotectedprivate这三个访问修饰符用于控制类的属性和方法的可见性范围,决定了哪些代码可以访问这些成员,这是PHP面向对象编程中实现封装特性的核心机制。

点赞(0)

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Dotcpp在线编译      (登录可减少运行等待时间)