Bonjour,
J'utilise actuellement un vieux système de gestion des rôles et permissions avec Constante binaires.

En travaillant sur la mise à jour de cette application pour PHP 8.1, je tombe sur le problème suivant:

Deprecated : Implicit conversion from float 17179869184 to int loses precision

Ce que je veux

Je souhaiterais éviter de devoir refaire complétement la gestion des droits dans cette version, je cherche donc un moyen de contrer ce Warning Deprecated.

Mes constantes:

const MODULE_USE = 0x01;
const MODULE_ADD = 0x02;
const MODULE_MOD = 0x04;
...
const MODULE_7_USE = 0x400000000;
const MODULE_7_NEW = 0x800000000;
const MODULE_7_NEW_LIST = 0x1000000000;
const MODULE_7_READONLY = 0x2000000000;

Récupération des autorisations

if (!((int)$_SESSION['SESS_RIGHTS'] & MODULE_USE)) {
    header("location: /home);
    exit;
}

En fonction du rôle, chaque constante est ajoutée dans lui est ajoutée ce qui donne un chiffre apparement trop élevé pour être géré en (int) dans cette nouvelle version.

Merci d'avance pour vos conseils,

Aucune réponse