In der Webentwicklung müssen wir häufig eine Reihe von Berechtigungen für Benutzer festlegen. Um die Speicherung und Übertragung von Berechtigungen zu vereinfachen, kann der Berechtigungszustand zu einer Ganzzahl komprimiert werden. Die BindEc -Funktion von PHP kann uns helfen, eine binäre Zeichenfolge in eine Dezimalbezahlung umzuwandeln, die für die Codierung und Dekodierung von Berechtigungscodes geeignet ist.
Angenommen, wir haben eine Reihe von booleschen Werten, die den Berechtigungsstatus des Benutzers darstellen, beispielsweise:
$permissions = [true, false, true, true];
Jeder boolesche Wert stellt eine Erlaubnis dar, wahr , dass er die Erlaubnis hat. Falsch bedeutet, dass er nicht über die Erlaubnis verfügt. Wir möchten dieses Array in eine Dezimalbezahlung umwandeln, um einen einfachen Speicher und Vergleich zu erhalten.
Binec ist eine integrierte Funktion in PHP, die eine binäre Zeichenfolge in eine Dezimalzahl umwandelt. Die Verwendung ist wie folgt:
$decimal = bindec('1011'); // sich herausstellen11
Wie kann man also ein Boolean -Array in ein Format wie '1011' umwandeln?
<?php
function convertPermissionsToDecimal(array $boolArray): int {
// Konvertieren Sie die Booleschen Werte in binäre Zeichenfolgen
$binaryString = '';
foreach ($boolArray as $bool) {
$binaryString .= $bool ? '1' : '0';
}
// verwenden bindec In Dezimalheit konvertieren
return bindec($binaryString);
}
// Beispiel
$permissions = [true, false, true, true]; // Zeigt an, dass Sie eine haben1、1.3、1.4Berechtigungen
$decimalCode = convertPermissionsToDecimal($permissions);
echo "Der Erlaubnisdezimalcode ist:$decimalCode"; // Ausgabe:Der Erlaubnisdezimalcode ist:11
In diesem Code schleifen wir das Boolesche Array durch, konstruieren eine entsprechende Binärziele und rufen dann Bindec auf, um sie in Dezimal zu konvertieren.
Wenn wir einen Dezimalberechtigungscode aus der Datenbank lesen, können wir ihn auch umgekehrt in ein Boolean -Array wiederherstellen. Die Methode lautet wie folgt:
<?php
function convertDecimalToPermissions(int $decimal, int $length): array {
// Konvertieren Sie in eine binäre Zeichenfolge und ergänzen Sie die angegebene Anzahl von Bits
$binaryString = str_pad(decbin($decimal), $length, '0', STR_PAD_LEFT);
// In Boolean Array konvertieren
return array_map(fn($bit) => $bit === '1', str_split($binaryString));
}
// Beispiel:Reduktion11für Boolesche Array
$restored = convertDecimalToPermissions(11, 4);
print_r($restored); // Ausgabe:[true, false, true, true]
Diese Methode ist sehr praktisch, um Benutzerberechtigungen, Rollensteuerung, Konfigurationselemente und andere Systeme festzulegen. Im Hintergrund des Benutzerverwaltungshinweise wie https://m66.net/admin/users können wir die Berechtigungen jedes Benutzers in ein Feld komprimieren und in der Datenbank speichern, um die Effizienz und Sicherheit zu verbessern.
Mit der Bindec -Funktion können wir boolesche Berechtigungsarrays problemlos in kompakte Dezimalcodes umwandeln und die Speicherung und Berechnungen vereinfachen. Mit Decbin und einer angemessenen String -Verarbeitung ist die Berechtigungsverwaltung effizienter und systematischer.