Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Einführung in statische Methoden in PHP

Detaillierte Einführung in statische Methoden in PHP

PHPz
PHPzOriginal
2023-04-19 09:19:131150Durchsuche

In PHP ist die statische Methode ein besonderer Methodentyp, der sich stark von gewöhnlichen Methoden unterscheidet. In diesem Artikel werden das Konzept, die Verwendung und die Vorsichtsmaßnahmen statischer Methoden in PHP ausführlich vorgestellt.

Konzept

In PHP bezieht sich eine statische Methode auf eine Methode, die aufgerufen werden kann, ohne ein Objekt zu instanziieren. Laienhaft ausgedrückt handelt es sich um eine Gesamtoperation für die Klasse und nicht um eine Operation für das instanziierte Objekt. Verwenden Sie das Schlüsselwort „static“ vor der Methode, um dem PHP-Interpreter mitzuteilen, dass es sich um eine statische Methode handelt.

Verwendungsmethode

Bei der Verwendung statischer Methoden sind einige Dinge zu beachten:

  1. Direkter Aufruf über den Klassennamen

Statische Methoden müssen keine Objekte instanziieren und können direkt über den Klassennamen aufgerufen werden:

class Example {
    public static function Func(){
        echo "This is a static function!\n"
    }
}

Example::Func(); //Output: This is a static function!
  1. In der Methode kann das Schlüsselwort $this nicht verwendet werden

Normalerweise verwenden wir in normalen Methoden das Schlüsselwort $this, um auf Eigenschaften und Methoden in der Klasse zu verweisen, aber in statischen Methoden kann das Schlüsselwort $this nicht verwendet werden, da es kein instanziiertes Objekt gibt :

class Example {
    public $name = "example";

    public static function Func(){
        echo "This is a static function! \n";
        //不能使用$this
        //echo $this->name; //错误!
    }
}
  1. Sie können die Schlüsselwörter self und static verwenden

Sie können die Schlüsselwörter self und static in statischen Methoden verwenden, um auf die Klasse selbst und die übergeordnete Klasse zu verweisen:

class Example {
    public static function Func(){
        echo "This is a static function! \n";
        //使用self引用类本身
        echo "The class name is: ".self::class."\n";
    }
}

class ChildExample extends Example {
    public static function Func() {
        //使用parent关键字引用父类
        parent::Func();
        //使用static关键字引用当前类
        echo "The class name is: ".static::class."\n";
    }
}

ChildExample::Func(); 
//Output: 
//This is a static function! 
//The class name is: Example
//The class name is: ChildExample
  1. Kann vererbt und überschrieben werden

Statisch Methoden können wie gewöhnliche Methoden sein. Auch vererbt und überschrieben:

class Example {
    public static function Func(){
        echo "This is a static function in Example! \n";
    }
}

class ChildExample extends Example {
    public static function Func() {
        echo "This is a static function in ChildExample! \n";
        parent::Func();
    }
}

ChildExample::Func(); 
//Output: 
//This is a static function in ChildExample! 
//This is a static function in Example!

Hinweise

  1. Statische Methoden können nur auf statische Eigenschaften zugreifen

Da statische Methoden keine instanziierten Objekte haben, kann nicht auf nicht statische Eigenschaften zugegriffen werden:

class Example {
    public $name = "example";
    public static function Func() {
        echo "The class name is: ".self::class."\n";
        //不能访问非静态属性
        //echo "The name is: ".$this->name."\n";  
        //错误!
    }
}

Example::Func(); //The class name is: Example
  1. Statische Methoden kann nicht überschrieben werden. Dies liegt daran, dass statische Methoden zur gesamten Klasse und nicht zu einem Objekt gehören und nicht polymorph sein können.

Statische Methoden sollten so wenig wie möglich verwendet werden

  1. Obwohl statische Methoden viel Komfort bieten können, ist die übermäßige Verwendung statischer Methoden nicht förderlich für die Wartbarkeit und Skalierbarkeit des Programms. Daher sollten wir versuchen, den übermäßigen Einsatz statischer Methoden in großen Projekten zu vermeiden.
Zusammenfassung

Die statische Methode ist eine spezielle Art von Methode in PHP, die direkt aufgerufen werden kann, ohne das Objekt zu instanziieren. Statische Methoden können die Schlüsselwörter self und static verwenden, um auf die Klasse selbst und die übergeordnete Klasse zu verweisen, nicht jedoch das Schlüsselwort $this. Da statische Methoden zur gesamten Klasse und nicht zu einem Objekt gehören, sollten sie so wenig wie möglich verwendet werden, um die Wartbarkeit und Skalierbarkeit des Programms sicherzustellen.

Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in statische Methoden in PHP. 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