访问控制修饰符
在PHP中,我们可以规定类中的成员属性和成员方法是否允许被外界访问,通过访问控制修饰符来实现。访问控制修饰符共有3种,分别是public(公有修饰符)、protected(保护成员修饰符)和private(私有修饰符),其具体的作用范围如表1所示。
表1 访问控制修饰符的作用范围
访问控制修饰符 | 同一个类内 | 子类 | 类外 |
---|---|---|---|
public | √ | √ | √ |
protected | √ | √ | × |
private | √ | × | × |
在表1中,“√”表示允许访问,“×”表示不允许访问。为了方便大家理解,下面通过代码演示访问控制修饰符的使用。
1 class User
2 {
3 public $name = '张三'; // 姓名
4 protected $phone = '400-123456'; // 电话
5 private $money = '5000'; // 存款
6 }
7 $user = new User();
8 echo $user->name; // 输出结果:张三
9 echo $user->phone; // 报错
10 echo $user->money; // 报错
在上述代码中,第1~6行定义了User类。其中,第3行声明了一个公有属性$name,第4行声明了一个受保护的属性$phone,第5行声明了一个私有属性$money。
在类外部实例化User类,并调用类中声明的属性,从输出结果可知,只有public修饰的公有属性$name可以在类外被访问。
需要注意的是,在定义类时,成员属性必须有访问控制修饰符,否则会报错,成员方法如果没有指定访问控制符,则默认为public。