Heim > Backend-Entwicklung > PHP-Tutorial > Wie initialisiere ich statische Variablen in PHP richtig?

Wie initialisiere ich statische Variablen in PHP richtig?

Patricia Arquette
Freigeben: 2024-11-25 05:04:12
Original
279 Leute haben es durchsucht

How to Properly Initialize Static Variables in PHP?

Statische Variablen in PHP initialisieren: Eine Anleitung

Problem:

Beim Initialisieren statischer Variablen in PHP tritt ein Fehler auf Code mit der Syntax private static $dates = array(...);. Insbesondere erhalten Sie einen „Syntaxfehler“ im Zusammenhang mit unerwarteten Klammern.

Antwort:

In PHP können komplexe Ausdrücke nicht direkt in statischen Variableninitialisierern verwendet werden. Hier sind zwei Methoden, um diese Einschränkung zu umgehen:

Methode 1: Klasseninitialisierungscode verwenden

Nachdem Sie die Klasse definiert haben, fügen Sie den folgenden Code hinzu:

class Foo {
  static $bar;
}
Foo::$bar = array(...);
Nach dem Login kopieren

Methode 2: Verwenden einer statischen Initialisierungsmethode

Definieren Sie eine statische Initialisierungsmethode und rufen Sie sie manuell auf:

class Foo {
  private static $bar;
  static function init()
  {
    self::$bar = array(...);
  }
}
Foo::init();
Nach dem Login kopieren

PHP 5.6 :

In PHP 5.6 und höher können Sie begrenzte Ausdrücke in statischen Variableninitialisierern verwenden. Für komplexe Ausdrücke können die oben genannten Methoden jedoch dennoch erforderlich sein. Für abstrakte Klassen kann die folgende Syntax verwendet werden:

abstract class Foo{
    private static function bar(){
        static $bar = null;
        if ($bar == null)
            bar = array(...);
        return $bar;
    }
    /* use where necessary */
    self::bar();
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie initialisiere ich statische Variablen in PHP richtig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage