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