Heim  >  Artikel  >  Backend-Entwicklung  >  Spezielle Syntax in PHP: Static, Final, Abstract und andere Schlüsselwörter

Spezielle Syntax in PHP: Static, Final, Abstract und andere Schlüsselwörter

PHPz
PHPzOriginal
2023-05-11 16:00:071498Durchsuche

PHP ist eine beliebte serverseitige Open-Source-Skriptsprache, die häufig in der Webentwicklung verwendet wird. Die PHP-Sprache ist nicht nur einfach zu erlernen und zu verwenden, sondern unterstützt auch eine Vielzahl von Programmierparadigmen, objektorientierte Programmierung, funktionale Programmierung usw.

In PHP gibt es einige spezielle Syntaxschlüsselwörter wie Static, Final, Abstract usw. Diese Schlüsselwörter haben spezielle Funktionen in der objektorientierten Programmierung. In diesem Artikel werden diese Schlüsselwörter ausführlich vorgestellt.

Static-Schlüsselwort

In PHP hat das Static-Schlüsselwort zwei Verwendungszwecke. Einer wird zur Darstellung statischer Variablen und der andere zur Darstellung statischer Methoden verwendet. Der Unterschied zwischen statischen Variablen und statischen Methoden und gewöhnlichen Variablen und Methoden besteht darin, dass auf statische Variablen und Methoden außerhalb der Klassendefinition zugegriffen werden kann, während auf gewöhnliche Variablen und Methoden nur innerhalb der Klassendefinition zugegriffen werden kann.

Statische Variablen

Statische Variablen beziehen sich auf Variablen, die in der Klassendefinition definiert sind, aber ihre Werte werden von verschiedenen Objekten gemeinsam genutzt, was bedeutet, dass der Wert der statischen Variablen immer derselbe ist, egal wie viele Objekte erstellt werden.

Das Folgende ist ein Beispiel für die Definition und Verwendung statischer Variablen:

class Example {

    public static $count = 0;

    public function __construct() {
        self::$count++;
    }
}

$obj1 = new Example();
$obj2 = new Example();
$obj3 = new Example();

echo Example::$count; // 输出3

In diesem Beispiel wird die öffentliche statische Variable $count jedes Mal um 1 erhöht, wenn eine Klasseninstanz erstellt wird. In der letzten Zeile können wir über den Klassennamen auf den Wert der statischen Variablen zugreifen, der Ausgabe 3 ist.

Statische Methoden

Statische Methoden beziehen sich auf Methoden, die in der Klassendefinition definiert sind, aber sie können direkt aufgerufen werden, ohne die Klasse zu instanziieren.

Das Folgende ist ein Beispiel für die Definition und Verwendung statischer Methoden:

class Example {

    public static function sayHello() {
        echo "Hello World!";
    }
}

Example::sayHello(); // 输出 "Hello World!"

In diesem Beispiel definieren wir eine statische Methode sayHello, die die Klasse nicht instanziieren muss, sondern direkt über den Klassennamen und den Methodennamen aufgerufen wird.

Finales Schlüsselwort

Das letzte Schlüsselwort wird verwendet, um anzugeben, dass die Klasse oder Methode nicht von Unterklassen überschrieben werden kann. Mit anderen Worten: Wenn eine Klasse oder Methode als endgültig deklariert wird, kann die Klasse oder Methode nicht vererbt oder überschrieben werden.

Das Folgende ist ein Beispiel für die Verwendung des Schlüsselworts „final“:

final class Example {

    final public function sayHello() {
        echo "Hello World!";
    }
}

class Subclass extends Example {
    // 报错:不能继承被final修饰的类
}

class AnotherClass {

    public function sayHello() {
        echo "Hi, everyone!";
    }
}

class YetAnotherSubclass extends AnotherClass {

    final public function sayHello() {
        echo "Hello World!";
    }
}

class FinalClass extends YetAnotherSubclass {

    // 报错:不能重写被final修饰的方法
}

In diesem Beispiel werden die Klasse „Example“ und die Methode „sayHello“ beide als final deklariert. Weder die Unterklassen „SubClass“ noch „FinalClass“ können diese final-modifizierten Klassen und Methoden erben oder überschreiben . .

Abstraktes Schlüsselwort

Abstraktes Schlüsselwort wird verwendet, um anzugeben, dass die Klasse oder Methode abstrakt ist, das heißt, sie kann nicht instanziiert oder implementiert werden. In einer abstrakten Klasse definierte Methoden sind lediglich Methodendeklarationen ohne spezifische Implementierung. Diese Methoden müssen konkret in Unterklassen implementiert werden.

Das Folgende ist ein Beispiel für die Verwendung des Schlüsselworts Abstract:

abstract class Animal {
    abstract public function makeSound();
}

class Cat extends Animal {

    public function makeSound() {
        echo "Meow!";
    }
}

class Dog extends Animal {

    public function makeSound() {
        echo "Woof!";
    }
}

$obj1 = new Cat();
$obj1->makeSound(); // 输出 "Meow!"

$obj2 = new Dog();
$obj2->makeSound(); // 输出 "Woof!"

In diesem Beispiel wird eine abstrakte Klasse Animal definiert, die eine abstrakte Methode makeSound definiert. Cat- und Dog-Unterklassen müssen diese Methode implementieren, bevor sie instanziiert werden können.

Fazit

Die Schlüsselwörter static, final und abstract sind häufig verwendete Syntaxen in der objektorientierten PHP-Programmierung und sehr wichtige Werkzeuge für Entwickler. Wenn wir die Verwendung dieser Schlüsselwörter beherrschen, können wir besser korrekten, robusten und effizienten PHP-Code schreiben.

Das obige ist der detaillierte Inhalt vonSpezielle Syntax in PHP: Static, Final, Abstract und andere Schlüsselwörter. 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