Maison >développement back-end >tutoriel php >Comment initialiser correctement les variables statiques en PHP ?
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(...);
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();
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(); }
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!