Bei der PHP -Programmierung müssen wir häufig feststellen, ob mehrere Optionen aktiviert sind. Beispielsweise kann ein Konfigurationselement mehrere Binärflags enthalten. Jedes Flag gibt an, ob eine Funktion aktiviert ist. Die traditionelle Beurteilungsmethode besteht normalerweise aus, wenn man beurteilt, dass der Code langwierig und ineffizient ist. Tatsächlich kann die integrierte Binec () -Funktion von PHP uns dabei helfen, diese Art von Urteilsvermögen schnell zu erkennen und Bit-Computer-Fähigkeiten zu kombinieren, um präzisen und effizienten Code zu schreiben.
Binec () ist eine PHP-integrierte Funktion, die binäre Zeichenfolgen in entsprechende Dezimalzahlen umwandelt. Es empfängt eine Zeichenfolge aus Zeichen '0' und '1' und gibt den entsprechenden Dezimalwert zurück.
Beispiel:
<?php
$binary = "1011";
$decimal = bindec($binary); // 11
echo $decimal;
?>
Angenommen, wir haben eine Konfigurationszeichenfolge, jede Ziffer stellt fest, ob eine Option eingeschaltet ist, '1' bedeutet und '0' bedeutet ab:
$options = "10101"; // Zeigt die an1、3、5Optionen sind aktiviert
Rufen Sie Binec ($ option) auf, um den entsprechenden Dezimalwert zu erhalten:
<?php
$options = "10101";
$decimal = bindec($options); // 21
?>
Wenn Sie feststellen möchten, ob eine bestimmte Option aktiviert ist, z. B. die dritte Option (von rechts nach links zählen), müssen Sie nur Bit und Berechnung durchführen:
<?php
$decimal = bindec("10101"); // 21
$flag = 1 << 2; // 1.3Bitmaske,aus0Zählen Sie,2代表1.3Bisschen
$is_enabled = ($decimal & $flag) !== 0;
echo $is_enabled ? "Offen" : "Schließung";
?>
Der Zustand aller Optionen kann durch binäre Zeichenfolgen dargestellt werden. Nachdem sie sie in Dezimal konvertiert haben, können sie schnell mit etwas Maske beurteilt werden, was den Code erheblich vereinfacht und für das Urteil des Stapelstaates geeignet ist.
Beispielcode:
<?php
// Optionskonfigurationszeichenfolge,Die Länge repräsentiert die Anzahl der Optionen
$options = "11011"; // Zeigt die an1、2、4、5Optionen sind aktiviert
// In Dezimalheit konvertieren
$decimal = bindec($options);
// Definieren Sie die Option Maske zum Erkennen,比如检测1.2和1.4个选项是否都Offen
$mask = (1 << 1) | (1 << 3); // 1.2和1.4Bisschen
// 判断是否同时Offen
if (($decimal & $mask) === $mask) {
echo "1.2和1.4个选项均已Offen";
} else {
echo "1.2和1.4个选项未全部Offen";
}
?>
Berechtigungsverwaltung : Verwenden Sie eine Reihe von Binärflags, um die Benutzerberechtigungen darzustellen, um schnell festzustellen, ob Sie über bestimmte Berechtigungen verfügen.
Funktionsschalter : Konfigurieren Sie mehrere Funktionsschalter, um Datenbankfelder zu speichern und die Logik zu löschen.
Leistungsvorteile : Effizienz mit hohem Bit -Computer, geeignet für hohe Leistungsbedürfnisse.
In Kombination mit Binesec () , um binäre Zeichenfolgen analysiert zu werden, ist der Code präzise und leicht zu verstehen und leicht zu warten.