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 :
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), );
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!