跳到主要内容

请写出PHP权限控制修饰符?

参考答案:

在PHP中,并没有像某些其他编程语言(如Java或C#)那样的显式权限控制修饰符(如publicprotectedprivate)。然而,PHP有自己的方式来控制属性和方法的可见性。

  1. public:这是默认的访问修饰符。如果一个类成员(属性或方法)没有被明确定义为privateprotected,那么它就被认为是public的。public成员可以从任何地方被访问。
class MyClass {
    public $myPublicVar = 'Hello World';

    public function myPublicFunction() {
        echo 'This is a public function';
    }
}
  1. protectedprotected成员可以在其定义的类内部以及任何继承自该类的子类中被访问。它们不能被定义它们的类的外部直接访问。
class MyClass {
    protected $myProtectedVar = 'Hello World';

    protected function myProtectedFunction() {
        echo 'This is a protected function';
    }
}

class MySubClass extends MyClass {
    public function accessProtected() {
        echo $this->myProtectedVar; // Valid
        $this->myProtectedFunction(); // Valid
    }
}
  1. privateprivate成员只能在其定义的类内部被访问。它们不能被继承的子类或直接访问。
class MyClass {
    private $myPrivateVar = 'Hello World';

    private function myPrivateFunction() {
        echo 'This is a private function';
    }
}

class MySubClass extends MyClass {
    public function accessPrivate() {
        echo $this->myPrivateVar; // Invalid
        $this->myPrivateFunction(); // Invalid
    }
}

虽然PHP没有像其他语言那样的显式权限控制修饰符,但这些访问修饰符提供了足够的灵活性来控制类的属性和方法的可见性。