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

Wie kann ich statische Variablen in PHP richtig initialisieren?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-29 03:32:09463Durchsuche

How Can I Properly Initialize Static Variables in PHP?

Statische Variablen in PHP initialisieren

Beim Initialisieren statischer Variablen können Syntaxfehler auftreten, wie der im angegebenen Codeausschnitt dargestellte. Dies liegt daran, dass PHP komplexe Ausdrücke innerhalb des Variableninitialisierers nicht analysieren kann.

Alternative Initialisierungsmethoden

Um dieses Problem zu beheben, sollten Sie die folgenden alternativen Methoden verwenden:

  • Separate Initialisierung: Definieren Sie Ihre statische Variable wie gewohnt und initialisieren Sie sie dann mit einer separaten Anweisung außerhalb der Klassendefinition.
class Registration {
  static $dates;
}
Registration::$dates = array(
  'start' => mktime(0, 0, 0, 7, 30, 2009),
  'end' => mktime(0, 0, 0, 8, 2, 2009),
  'close' => mktime(23, 59, 59, 7, 20, 2009),
  'early' => mktime(0, 0, 0, 3, 19, 2009),
);
  • Initialisierungsfunktion: Erstellen Sie eine statische Funktion innerhalb der Klasse, um die Initialisierung durchzuführen.
class Registration {
  private static $dates;

  static function init() {
    self::$dates = array(
      'start' => mktime(0, 0, 0, 7, 30, 2009),
      'end' => mktime(0, 0, 0, 8, 2, 2009),
      'close' => mktime(23, 59, 59, 7, 20, 2009),
      'early' => mktime(0, 0, 0, 3, 19, 2009),
    );
  }

  // Call the init function to initialize the variable
  public function __construct() {
    static::init();
  }
}

PHP 5.6-Unterstützung

PHP 5.6 Einführung einer eingeschränkten Unterstützung für nicht triviale Ausdrücke in statischen Variableninitialisierern. Aus Gründen der Übersichtlichkeit und Kompatibilität mit früheren PHP-Versionen wird jedoch empfohlen, die oben genannten Methoden zu verwenden.

Das obige ist der detaillierte Inhalt vonWie kann ich statische Variablen in PHP richtig initialisieren?. 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