Iv'a toujours été conscient que vous ne pouvez pas définir des valeurs dynamiques à des variables dans une structure de classe, mais est-il possible de contourner cela?Affectation de valeurs dynamiques avec des variables/constantes dans les classes
J'ai cette interface:
interface IUserPermissions
{
/*
* Public VIEW,CREATE,UPDATE,DELETE
*/
const PUBLIC_VIEW = 1;
const PUBLIC_CREATE = 2;
const PUBLIC_EDIT = 4;
const PUBLIC_DELETE = 8;
const PUBLIC_GLOBAL = 1 | 2 | 4 | 8; #Section 1
/*
* Admin VIEW,CREATE,UPDATE,DELETE
*/
const ADMIN_VIEW = 16;
const ADMIN_CREATE = 32;
const ADMIN_EDIT = 64;
const ADMIN_DELETE = 128;
const ADMIN_GLOBAL = 16 | 32 | 64 | 128; #Section 2
}
Dans ce code, les lignes marquées comme Section 1 & 2 déclencheur d'une erreur, plus spécifique, l'erreur est ci-dessous:
syntax error, unexpected '|', expecting ',' or ';'
Mais comme c'est un interface il n'y a pas de méthode, il n'y a pas de blocs de code autorisés.
Quelqu'un peut-il offrir une solution?
Désolé, mon code était censé être XOR, qui évaluerait à '11100110' – RobertPitt
Oui. J'ai réalisé cela aussi. De toute façon, il suffit de calculer la valeur vous-même et en faire un commentaire. – webbiedave
@RobertPitt - Je suppose que vous vouliez dire OU, pas XOR. Mais de toute façon, la réponse est la même: '11110000' (240 dec). L'opérateur XOR dans php est '^', tandis que l'opérateur OR est '|'. – Lee