在 PHP 中,访问修饰符用于控制类的属性和方法的访问权限。PHP 提供了三种访问修饰符:
- public(公共的):在任何地方都可以访问,没有限制。
- protected(受保护的):只能在类内部以及继承类中访问,不能在外部访问。
- private(私有的):只能在定义它们的类内部访问,不能在外部或继承类中访问。
public(公共的)
- 公共属性和方法可以在类的内部、外部和子类中被访问。
- 公共属性和方法对外部代码是可见的,并且可以被直接访问。
class MyClass {
public $publicVar = "Public Property";
public function publicMethod() {
return "Public Method";
}
}
$obj = new MyClass();
echo $obj->publicVar; // 输出:Public Property
echo $obj->publicMethod(); // 输出:Public Method
protected(受保护的)
- 受保护的属性和方法可以在类的内部和子类中被访问,但不能在外部直接访问。
- 受保护的属性和方法对外部代码是不可见的,但可以被继承的子类访问。
class MyClass {
protected $protectedVar = "Protected Property";
protected function protectedMethod() {
return "Protected Method";
}
}
class SubClass extends MyClass {
public function displayProtected() {
return $this->protectedVar; // 可以在子类中访问受保护属性
}
}
$obj = new MyClass();
// echo $obj->protectedVar; // 无法直接访问受保护属性
// echo $obj->protectedMethod(); // 无法直接调用受保护方法
$subObj = new SubClass();
echo $subObj->displayProtected(); // 输出:Protected Property
private(私有的)
- 私有属性和方法只能在类的内部访问,不能在外部或子类中直接访问。
- 私有属性和方法对外部代码和继承的子类都是不可见的。
class MyClass {
private $privateVar = "Private Property";
private function privateMethod() {
return "Private Method";
}
}
$obj = new MyClass();
// echo $obj->privateVar; // 无法直接访问私有属性
// echo $obj->privateMethod(); // 无法直接调用私有方法
文章评论