Heim  >  Artikel  >  Backend-Entwicklung  >  Der Unterschied zwischen statischen Methoden und nicht statischen Klassenmethoden in PHP8.0

Der Unterschied zwischen statischen Methoden und nicht statischen Klassenmethoden in PHP8.0

WBOY
WBOYOriginal
2023-05-14 08:13:351257Durchsuche

Mit der kontinuierlichen Weiterentwicklung der Internet-Technologie wird auch PHP als weit verbreitete Entwicklungssprache ständig aktualisiert und iteriert. In der neuesten PHP8.0-Version gibt es einige neue Änderungen im Unterschied zwischen statischen Methoden und nicht statischen Methoden von Klassen. In diesem Artikel wird der Unterschied zwischen statischen Methoden und nicht statischen Klassenmethoden in PHP8.0 ausführlich vorgestellt.

1. Statische Methoden von Klassen müssen bei Verwendung keine Objekte instanziieren. In der PHP8.0-Version können statische Methoden einer Klasse verwendet werden definiert sind, ist anders als zuvor. Es gab auch einige Änderungen. In früheren Versionen musste zum Definieren einer statischen Methode das Schlüsselwort „static“ vor dem Methodenkörper hinzugefügt werden, in PHP8.0 ist dies jedoch nicht erforderlich. Mit anderen Worten: Statische Methoden von Klassen in PHP8.0 können mit nicht statischen Methoden verwendet werden . Definieren Sie es auf die gleiche Weise.

Statische Methoden einer Klasse können sowohl über Klassen- als auch über Objektnamen aufgerufen werden, auf nicht statische Mitglieder und Methoden kann jedoch nicht zugegriffen werden. Da statische Methoden einer Klasse keine Instanziierung von Objekten erfordern, können Sie gleichzeitig Schlüsselwörter wie self, static und parent verwenden, um auf Mitglieder und Methoden der Klasse zu verweisen.

Das Folgende ist ein einfacher Beispielcode, der die Verwendung statischer Methoden einer Klasse demonstriert:

class Test {
    public static $name = 'PHP8.0';
    
    public static function printName() {
        echo self::$name;
    }
}

// 调用类的静态方法
Test::printName(); // 输出 PHP8.0

2. Nicht-statische Methoden einer Klasse

Nicht-statische Methoden einer Klasse müssen durch Instanziieren des Objekts aufgerufen werden, und Sie können auf die statischen Mitglieder und Methoden der Klasse zugreifen. In PHP8.0 hat sich im Vergleich zu früheren Versionen die Art und Weise, wie nicht statische Methoden einer Klasse definiert werden, nicht geändert.

Das Folgende ist ein einfacher Beispielcode, der die Verwendung nicht statischer Methoden einer Klasse demonstriert:

class Person {
    public $name;
    
    public function setName($name) {
        $this->name = $name;
    }
    
    public function getName() {
        echo $this->name;
    }
}

// 实例化对象
$person = new Person();

// 调用类的非静态方法
$person->setName('Tom');
$person->getName(); // 输出 Tom

3. Statische Eigenschaften von Klassen

Zusätzlich zu den statischen Methoden und nicht statischen Methoden der Klasse, PHP8. 0 führte auch statische Eigenschaften der Klasse ein. In früheren Versionen erforderte die Verwendung statischer Eigenschaften die Deklaration mit dem Schlüsselwort „static“ in der Klassendefinition, dies ist jedoch in PHP8.0 nicht erforderlich. Mit anderen Worten, es kann auf die gleiche Weise wie nicht statische Eigenschaften deklariert werden. Da die statischen Eigenschaften der Klasse der Klasse folgen, können sie gleichzeitig an jedem Ort gelesen und geändert werden, ohne das Objekt zu instanziieren.

Das Folgende ist ein einfacher Beispielcode, der die Verwendung statischer Attribute einer Klasse demonstriert:

class User {
    public static $count = 0;
    
    public function __construct() {
        self::$count++;
    }
    
    public static function getCount() {
        echo self::$count;
    }
}

// 创造对象
$newUser1 = new User();
$newUser2 = new User();

// 调用类的静态方法,获取对象数量
User::getCount(); // 输出 2

IV Zusammenfassung

Zusammenfassend ist der Unterschied zwischen statischen Methoden und nicht statischen Methoden von Klassen in PHP8.0 nicht zu groß groß. Die große Veränderung liegt einfach in der Art und Weise, wie sie definiert wird. Gleichzeitig hat PHP8.0 statische Attribute von Klassen hinzugefügt, um uns das Speichern und Teilen von Daten zu erleichtern, ohne Objekte zu instanziieren. In der tatsächlichen Entwicklung sollten Sie je nach Situation statische Methoden, nicht statische Methoden oder statische Attribute der Klasse verwenden, um den optimalen Effekt zu erzielen.

Das obige ist der detaillierte Inhalt vonDer Unterschied zwischen statischen Methoden und nicht statischen Klassenmethoden in PHP8.0. 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