Heim >Backend-Entwicklung >PHP-Tutorial >Welche Zugriffskontrollebenen gibt es für PHP-Funktionen?

Welche Zugriffskontrollebenen gibt es für PHP-Funktionen?

PHPz
PHPzOriginal
2024-04-11 10:06:01985Durchsuche

Es gibt 3 Zugriffskontrollebenen für PHP-Funktionen: öffentlich, geschützt und privat. Auf öffentliche Funktionen kann von überall zugegriffen werden, geschützte Funktionen sind nur für die eigene Klasse und Unterklassen zugänglich und private Funktionen sind nur für die eigene Klasse zugänglich. Wenn Sie die Zugriffskontrollebene ändern, fügen Sie einfach die entsprechenden Schlüsselwörter vor der Funktionsdeklaration hinzu, z. B. öffentliche Funktion, geschützte Funktion, private Funktion.

PHP 函数的访问控制级别有哪些?

Zugriffskontrollebene der PHP-Funktion

Die Zugriffskontrollebene der PHP-Funktion bestimmt, auf welche Teile der Funktion zugegriffen werden kann. Dadurch können wir den Zugriff auf Funktionen einschränken und so die Wartbarkeit und Sicherheit unseres Codes verbessern.

Zugriffskontrollebenen

Es gibt drei Zugriffskontrollebenen in PHP:

  • öffentlich: Auf Funktionen kann von überall aus zugegriffen werden.
  • geschützt: Auf eine Funktion kann nur aus der Klasse, in der sich die Funktion befindet, und ihren Unterklassen zugegriffen werden.
  • privat: Auf Funktionen kann nur von der Klasse aus zugegriffen werden, in der sich die Funktion befindet.

Syntax

Wenn Sie die Zugriffskontrollebene ändern, fügen Sie einfach das entsprechende Schlüsselwort vor der Funktionsdeklaration hinzu.

// public 函数
public function myPublicFunction() {
    // ...
}

// protected 函数
protected function myProtectedFunction() {
    // ...
}

// private 函数
private function myPrivateFunction() {
    // ...
}

Praktischer Fall

Angenommen, wir haben eine Klasse Benutzer, die Benutzerdaten speichert. Wir möchten den Zugriff auf Benutzerdaten nur über die öffentlichen Methoden dieser Klasse zulassen. Um dies zu erreichen, setzen wir die Funktion, die Benutzerdaten abruft, auf „geschützt“: User。我们希望只允许通过该类的公共方法访问用户数据。为了实现这一点,我们将对获取用户数据的函数设置为 protected:

class User {
    protected $name;
    protected $email;

    public function getName() {
        return $this->name;
    }

    public function getEmail() {
        return $this->email;
    }
}

现在,其他类可以通过 User 对象访问 getName()getEmail() 方法,但无法直接访问 $name$email 属性。

注意事项

  • 默认情况下,PHP 函数的访问控制级别是 public。
  • 如果尝试访问私有或受保护的函数,则会引发 Fatal Error
  • 受保护的函数可以在派生类中通过 parent::rrreee
  • Jetzt können andere Klassen über das User-Objekt getEmail auf getName() und zugreifen ()-Methode, es gibt jedoch keinen direkten Zugriff auf die Eigenschaften $name und $email.
Hinweise🎜🎜🎜🎜Standardmäßig ist die Zugriffskontrollebene von PHP-Funktionen öffentlich. 🎜🎜Wenn Sie versuchen, auf eine private oder geschützte Funktion zuzugreifen, wird ein 🎜Schwerwiegender Fehler🎜 ausgegeben. 🎜🎜Auf geschützte Funktionen kann in abgeleiteten Klassen über parent:: zugegriffen werden. 🎜🎜Erwägen Sie die Verwendung von Zugriffskontrollebenen, um den Zugriff auf vertrauliche Daten und Funktionen zu schützen. Durch den ordnungsgemäßen Einsatz der Zugriffskontrolle kann die Codesicherheit verbessert werden. 🎜🎜

Das obige ist der detaillierte Inhalt vonWelche Zugriffskontrollebenen gibt es für PHP-Funktionen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn