在PHP类内,我们常常看到很多属性或方法被这三种访问关键字所修饰,它们分别是public、protected和private。
那么这些访问关键字分别有什么作用呢?它们分别指定类内属性或方法的访问范围,让我们通过一张表格来总览一下:
| 关键字 | 类内部访问 | 子类访问 | 外部访问 |
|---|---|---|---|
| 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关键字修饰的属性或方法才能被外界访问。
总结:public、protected和private这三个访问修饰符用于控制类的属性和方法的可见性范围,决定了哪些代码可以访问这些成员,这是PHP面向对象编程中实现封装特性的核心机制。
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程