Maison >développement back-end >tutoriel php >Comment puis-je initialiser correctement les variables statiques en PHP ?

Comment puis-je initialiser correctement les variables statiques en PHP ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-29 03:32:09512parcourir

How Can I Properly Initialize Static Variables in PHP?

Initialisation des variables statiques en PHP

Lors de l'initialisation des variables statiques, vous pouvez rencontrer des erreurs de syntaxe comme celle illustrée dans l'extrait de code donné. En effet, PHP ne peut pas analyser les expressions complexes dans l'initialiseur de variable.

Méthodes d'initialisation alternatives

Pour résoudre ce problème, envisagez d'utiliser les méthodes alternatives suivantes :

  • Initialisation séparée : Définissez votre variable statique comme d'habitude, puis initialisez-la à l'aide d'une instruction distincte à l'extérieur de la définition de la classe.
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),
);
  • Fonction d'initialisation : Créez une fonction statique au sein de la classe pour gérer l'initialisation.
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();
  }
}

Support PHP 5.6

PHP 5.6 introduit de manière limitée prise en charge des expressions non triviales dans les initialiseurs de variables statiques. Cependant, il est recommandé d'utiliser les méthodes susmentionnées pour plus de clarté et de compatibilité avec les versions antérieures de PHP.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn