Heim > Backend-Entwicklung > PHP-Tutorial > Wie kann ich komplexe statische Variablen in PHP richtig initialisieren?

Wie kann ich komplexe statische Variablen in PHP richtig initialisieren?

Barbara Streisand
Freigeben: 2024-11-27 17:44:11
Original
759 Leute haben es durchsucht

How Can I Properly Initialize Complex Static Variables in PHP?

Statische Variablen in PHP initialisieren

Beim Initialisieren statischer Variablen in PHP können Syntaxfehler mit nicht trivialen Ausdrücken im Initialisierer auftreten. wie im Codeausschnitt zu sehen ist unten:

private static $dates = array(
  'start' => mktime( 0,  0,  0,  7, 30, 2009),  // Start date
  'end'   => mktime( 0,  0,  0,  8,  2, 2009),  // End date
  'close' => mktime(23, 59, 59,  7, 20, 2009),  // Date when registration closes
  'early' => mktime( 0,  0,  0,  3, 19, 2009),  // Date when early bird discount ends
);
Nach dem Login kopieren

Problemumgehung:

Eine Lösung besteht darin, komplexe Ausdrücke im Initialisierer zu vermeiden und die Werte stattdessen nach der Definition der Klasse zuzuweisen:

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

Eine andere Möglichkeit besteht darin, eine statische Funktion zum Initialisieren der Variablen zu verwenden:

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

PHP 5.6 Verbesserung:

PHP 5.6 unterstützt einige Ausdrücke in statischen Variableninitialisierern. Sie können beispielsweise eine abstrakte Klasse mit einer privaten statischen Funktion definieren, um die Variable zu initialisieren:

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 kann ich komplexe statische Variablen in PHP richtig initialisieren?. 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