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

Comment initialiser correctement les variables statiques en PHP ?

Patricia Arquette
Libérer: 2024-11-25 05:04:12
original
360 Les gens l'ont consulté

How to Properly Initialize Static Variables in PHP?

Initialisation des variables statiques en PHP : un guide

Problème :

Vous rencontrez une erreur lors de l'initialisation des variables statiques en PHP code utilisant la syntaxe private static $dates = array(...);. Plus précisément, vous recevez une « erreur de syntaxe » liée à des parenthèses inattendues.

Réponse :

En PHP, les expressions complexes ne peuvent pas être utilisées directement dans les initialiseurs de variables statiques. Voici deux méthodes pour contourner cette limitation :

Méthode 1 : Utilisation du code d'initialisation de classe

Après avoir défini la classe, ajoutez le code suivant :

class Foo {
  static $bar;
}
Foo::$bar = array(...);
Copier après la connexion

Méthode 2 : Utiliser une méthode d'initialisation statique

Définir une méthode d'initialisation statique méthode d'initialisation et appelez-la manuellement :

class Foo {
  private static $bar;
  static function init()
  {
    self::$bar = array(...);
  }
}
Foo::init();
Copier après la connexion

PHP 5.6 :

Dans PHP 5.6 et versions ultérieures, vous pouvez utiliser des expressions limitées dans les initialiseurs de variables statiques. Toutefois, pour les expressions complexes, les méthodes ci-dessus peuvent s’avérer nécessaires. Pour les classes abstraites, la syntaxe suivante peut être utilisée :

abstract class Foo{
    private static function bar(){
        static $bar = null;
        if ($bar == null)
            bar = array(...);
        return $bar;
    }
    /* use where necessary */
    self::bar();
}
Copier après la connexion

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal