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:
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!
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; //错误! } }
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
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
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
Statische Methoden sollten so wenig wie möglich verwendet werden
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!