访问控制符
- public
- protected
- private
php
<?php
//1.在类的内部
class Person {
public $name = '张三'; // 在类的外部可以访问
protected $age = 10; // 在类的内部和子类可以访问
private $money = 100; // 仅在类的内部访问
public function intro() {
// 在类的内部可以访问: 读
echo $this->name;
echo "<br/>";
echo $this->age;
echo "<br/>";
echo $this->money;
}
public function setAge(int $age) {
// 在类的内部可以访问: 写
if ($age >= 100) {
throw new Exception("不能大于100岁");
}
$this->age = $age;
}
}
// 2.在类的外部
$p1 = new Person();
$p1->intro();
$p1->setAge(20);
echo $p1->name; // 可以访问 public 修饰的字段/方法
// echo $p1->age; // 不能访问 protected 修饰的字段/方法, 报错信息如下
// Fatal error: Uncaught Error: Cannot access protected property Person::$age
// echo $p1->money; // 不能访问 private 修饰的字段/方法, 报错信息如下
// Fatal error: Uncaught Error: Cannot access private property Person::$money
// 3.在子类中
class Student extends Person {
public function __construct() {
echo $this->name; // 可以访问 public 修饰的字段/方法
echo $this->age; // 可以访问 protected 修饰的字段/方法
// echo $this->money; // 不能访问 private 修饰的字段/方法, 报错信息如下:
// Undefined property: Student::$money, 说明 private 修饰的字段/方法不会被继承
}
}
$s1 = new Student();