Erreur PHP : l'expression constante contient des opérations invalides
Un problème courant rencontré dans le développement PHP est "Erreur fatale : l'expression constante contient des opérations invalides ", qui se produit lorsque vous tentez d'utiliser une opération non valide dans une expression constante. Cela se produit généralement lors de la définition de propriétés de classe ou de paramètres de fonction en tant que constantes.
Problème
Plus précisément, dans l'exemple fourni, l'erreur est rencontrée à la ligne 214 de la configuration. php file :
protected static $dbname = 'mydb_'.$appdata['id'];
Cette ligne tente de définir une propriété statique nommée $dbname, en l'initialisant avec une concaténation de la chaîne 'mydb_' et la valeur de la variable $appdata['id']. Cependant, cette initialisation n'est pas valide car $appdata['id'] n'est pas une expression constante.
Solution
La solution à cette erreur est de s'assurer que tous les éléments statiques les déclarations de propriétés ou de paramètres sont initialisées avec des valeurs littérales ou constantes qui peuvent être évaluées au moment de la compilation. Dans ce cas, $appdata['id'] n'est pas une valeur constante, elle ne peut donc pas être utilisée dans l'expression constante.
Il existe deux manières possibles de résoudre ce problème :
protected $dbname = 'mydb_'.$appdata['id'];
En supprimant l'attribut statique, la propriété devient une propriété dynamique qui est initialisé au moment de l'exécution lorsque la variable $appdata['id'] est définie.
private static $dbname = 'mydb_' . 'CONSTANT_STRING';
En utilisant une chaîne constante, l'initialisation devient une expression constante qui peut être évaluée au moment de la compilation.
Supplémentaire Informations
Il est important de comprendre que les déclarations statiques sont résolues lors de la compilation. Cela signifie que les valeurs des variables et autres expressions dynamiques ne peuvent pas être utilisées dans les déclarations constantes.
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!