Heim  >  Artikel  >  Backend-Entwicklung  >  Umfang und Sichtbarkeit von Funktionsaufrufen in PHP OOP

Umfang und Sichtbarkeit von Funktionsaufrufen in PHP OOP

PHPz
PHPzOriginal
2024-04-11 09:51:01942Durchsuche

Umfang und Sichtbarkeit von Funktionsaufrufen: Umfang: Definiert den Umfang der Variablen, auf die die Funktion zugreifen kann (lokal/global). Sichtbarkeit: Definieren Sie den Umfang der Funktion, auf den andere Funktionen zugreifen können (öffentlich/geschützt/privat). Der Gültigkeitsbereich wird wirksam, wenn eine Funktion aufgerufen wird, und bestimmt die Variablen, auf die zugegriffen werden kann. Praktischer Fall: Nehmen Sie die User-Klasse als Beispiel, um die Sichtbarkeitsbeschränkungen von Eigenschaften und Methoden zu demonstrieren.

PHP OOP 中函数调用的作用域和可见性

Umfang und Sichtbarkeit von Funktionsaufrufen in PHP OOP

Umfang

Der Umfang einer Funktion definiert den Umfang der Variablen, auf die die Funktion zugreifen kann. In PHP gibt es zwei Arten von Bereichen:

  • Lokaler Bereich: Variablen, die innerhalb einer Funktion definiert sind, sind nur innerhalb dieser Funktion sichtbar.
  • Globaler Geltungsbereich: Variablen, die außerhalb einer Funktion definiert sind, sind im gesamten Skript zugänglich.

Sichtbarkeit

Die Sichtbarkeit einer Funktion definiert den Umfang, innerhalb dessen andere Funktionen auf eine Funktion zugreifen können. In PHP gibt es drei Sichtbarkeitsstufen:

  • öffentlich: Funktionen können von überall aus aufgerufen werden.
  • geschützt: Auf die Funktion kann nur in Unterklassen dieser Klasse zugegriffen werden.
  • privat: Auf die Funktion kann nur innerhalb dieser Klasse zugegriffen werden.

Bereich von Funktionsaufrufen

Wenn eine Funktion aufgerufen wird, besteht die Rolle des Bereichs darin, zu bestimmen, auf welche Variablen zugegriffen werden kann. Eine Variable kann nur auf Variablen innerhalb ihres Gültigkeitsbereichs zugreifen.

Das folgende Beispiel zeigt, wie sich der Bereich auf den Zugriff auf Variablen auswirkt:

<?php
$global_variable = "全球变量";

function myFunction() {
    $local_variable = "局部变量";
    echo "局部变量:$local_variable<br>";
    echo "全局变量:$global_variable<br>";
}

myFunction();
?>

Ausgabe:

局部变量:局部变量
全局变量:全球变量

Beispiel aus der Praxis

Stellen Sie sich eine Klasse vor, die Benutzerinformationen verarbeitet:

<?php
class User {
    public $name;
    protected $email;
    private $password;

    public function __construct($name, $email, $password) {
        $this->name = $name;
        $this->email = $email;
        $this->password = $password;
    }

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

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

    private function getPassword() {
        return $this->password;
    }
}

$user = new User("约翰·史密斯", "john.smith@example.com", "12345");

echo $user->getName(); // 约翰·史密斯
echo $user->getEmail(); // 错误:无法访问受保护属性
echo $user->getPassword(); // 错误:无法访问私有属性
?>

In diesem Beispiel:

  • $name ist eine öffentliche Eigenschaft und kann von überall aus aufgerufen werden. $name 是一个公共属性,可以在任何地方访问。
  • $email 是一个受保护属性,只能在类とその子类中访问。
  • $password 是一个私有属性,只能在类中访问。
  • getName() 是一个公共方法,可以在任何地方调用。
  • getEmail() 是一个受保护方法,只能在类とその子类中调用。
  • getPassword()
  • $email ist eine geschützte Eigenschaft und kann nur in Unterklassen der Klasse とその aufgerufen werden.
🎜$password ist eine private Eigenschaft und kann nur innerhalb der Klasse aufgerufen werden. 🎜🎜getName() ist eine öffentliche Methode, die überall aufgerufen werden kann. 🎜🎜getEmail() ist eine geschützte Methode und kann nur in Unterklassen der Klasse とその aufgerufen werden. 🎜🎜getPassword() ist eine private Methode und kann nur in der Klasse aufgerufen werden. 🎜🎜

Das obige ist der detaillierte Inhalt vonUmfang und Sichtbarkeit von Funktionsaufrufen in PHP OOP. 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