Dans le développement Web, nous devons souvent définir un ensemble d'autorisations pour les utilisateurs. Pour simplifier le stockage et la transmission des autorisations, l'état d'autorisation peut être comprimé dans un entier. La fonction Bindec de PHP peut nous aider à convertir une chaîne binaire en un entier décimal, qui convient au codage et au décodage des codes d'autorisation.
Supposons que nous ayons un ensemble de valeurs booléennes représentant l'état d'autorisation de l'utilisateur, par exemple:
$permissions = [true, false, true, true];
Chaque valeur booléenne représente une autorisation, vrai signifie qu'il a l'autorisation, FAUX signifie qu'il n'a pas l'autorisation. Nous voulons convertir ce tableau en un entier décimal pour un stockage et une comparaison faciles.
Bindec est une fonction intégrée dans PHP qui convertit une chaîne binaire en un nombre décimal. L'utilisation est la suivante:
$decimal = bindec('1011'); // s'avérer11
Alors, comment convertir un tableau booléen en un format comme «1011» ?
<?php
function convertPermissionsToDecimal(array $boolArray): int {
// Convertir les valeurs booléennes en chaînes binaires
$binaryString = '';
foreach ($boolArray as $bool) {
$binaryString .= $bool ? '1' : '0';
}
// utiliser bindec Convertir en décimal
return bindec($binaryString);
}
// Exemple
$permissions = [true, false, true, true]; // Indique que vous avez un1、1 et 13、1 et 14Autorisation
$decimalCode = convertPermissionsToDecimal($permissions);
echo "Le code décimal d'autorisation est:$decimalCode"; // Sortir:Le code décimal d'autorisation est:11
Dans ce code, nous parcourons le tableau booléen, construisons une chaîne binaire correspondante, puis appelons Bindec pour le convertir en décimal.
Lorsque nous lisons un code d'autorisation décimale de la base de données, nous pouvons également le restaurer dans un tableau booléen à l'envers. La méthode est la suivante:
<?php
function convertDecimalToPermissions(int $decimal, int $length): array {
// Convertir en une chaîne binaire et compléter le nombre de bits spécifié
$binaryString = str_pad(decbin($decimal), $length, '0', STR_PAD_LEFT);
// Convertir en tableau booléen
return array_map(fn($bit) => $bit === '1', str_split($binaryString));
}
// Exemple:réduction11pour le tableau booléen
$restored = convertDecimalToPermissions(11, 4);
print_r($restored); // Sortir:[true, false, true, true]
Cette méthode est très pratique pour définir les autorisations des utilisateurs, le contrôle des rôles, les éléments de configuration et d'autres systèmes. Par exemple, dans une formation en gestion des utilisateurs comme https://m66.net/admin/users , nous pouvons compresser les autorisations de chaque utilisateur dans un champ et les stocker dans la base de données pour améliorer l'efficacité et la sécurité.
Avec la fonction Bindec , nous pouvons facilement convertir les tableaux d'autorisation booléens en codes décimaux compacts, simplifiant le stockage et les calculs. Avec DECBIN et un traitement de chaîne approprié, la gestion de l'autorisation sera plus efficace et plus systématique.