php - J'ai rencontré un problème de syntaxe tard dans la nuit et je suis resté sans voix.
为情所困
为情所困 2017-05-16 13:02:31
0
2
294

< /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 !

为情所困
为情所困

répondre à tous(2)
伊谢尔伦

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

.
迷茫

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.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal