Maison > Questions et réponses > le corps du texte
< /p>
constAdministration = 0x1 <<
Le code est cette phrase. Il utilise const pour définir une constante, et utilise uniquement le symbole de déplacement dans la constante. Il n'y a pas de problème dans le système win, mais une erreur de syntaxe est signalée dans le système ubuntu !
伊谢尔伦2017-05-16 13:04:31
Ce n'est pas un problème avec PHP, mais neuf fois sur dix c'est un problème avec votre éditeur.
<?php
class Privilege{
const Administration = 0x1 << 1;
}
$a = new Privilege();
echo $a::Administration;
Sur centos et mac (les deux sont en php7), les résultats de sortie sont tous deux 2, pas de problème
Problème de version php.
changelog est ici :
http://php.net/manual/zh/migr...
Nouvelles fonctionnalités introduites dans la version 5.6 :
Utilisez des expressions pour définir des constantes
Dans les versions précédentes de PHP, les valeurs statiques devaient être utilisées pour définir des constantes, déclarer des propriétés et spécifier des valeurs par défaut pour les paramètres de fonction. Vous pouvez désormais utiliser des expressions numériques, notamment des nombres, des chaînes littérales et d'autres constantes, pour définir des constantes, déclarer des propriétés et définir des valeurs par défaut pour les paramètres de fonction.
Avant la version 5.6, les valeurs statiques doivent être utilisées. Après la version 5.6, les constantes peuvent être définies à l'aide d'opérations
.迷茫2017-05-16 13:04:31
Personnellement, je pense que la raison de cette erreur est que la version PHP en ligne est inférieure à 5.6. Avant PHP5.6, la valeur r d'une constante ne pouvait être qu'une quantité directe et une valeur statique, pas une expression. Ce n'est qu'à partir de PHP 5.6 que les expressions sont prises en charge en tant que valeurs de constantes.