Aktueller Standort: Startseite> Neueste Artikel> Verwenden

Verwenden

M66 2025-06-03

Bei der Entwicklung von Berechtigungsmanagementsystemen müssen wir häufig zwischen Berechtigungsdaten in verschiedenen Formaten umwandeln. Beispielsweise werden die Berechtigungskennungen in der Datenbank gespeichert (z. B. View_user , edit_post ), aber es sind freundlichere Berechtigungsnamen erforderlich, wenn die Schnittstelle angezeigt wird (z. B. "Benutzer anzeigen" und "Artikel bearbeiten").

Wenn Sie ein Array für das Mapping -Zuordnen beibehalten, kann die Funktion array_flip () in PHP Ihnen dabei helfen, die Reverse -Mapping von Kennungen zu Berechtigungsnamen schnell zu implementieren. In diesem Artikel wird über seine Verwendung und Vorsichtsmaßnahmen sprechen.

1. Grundstruktur der Berechtigungskartierung

Normalerweise definieren wir eine Reihe von Berechtigungsnamen für Erlaubniskennungen, beispielsweise:

 $permissions = [
    'Benutzer anzeigen' => 'view_user',
    'Benutzer bearbeiten' => 'edit_user',
    'Benutzer löschen' => 'delete_user',
    'Einen Artikel veröffentlichen' => 'publish_post',
    'Bearbeiten Sie den Artikel' => 'edit_post',
];

Diese Struktur ist geeignet, um Dropdown-Optionen oder Kontrollkästchen in der Benutzeroberfläche zu rendern. Wenn das System jedoch eine Bezeichnung erhält (z. B. die API gibt edit_post zurück), wie können wir den entsprechenden chinesischen Namen schnell finden?

2. Verwenden Sie Array_flip (), um die Reverse Mapping zu implementieren

Array_flip () von PHP kann Schlüssel und Werte eines Arrays kombinieren. Daher ist es sehr einfach, eine Zuordnungstabelle von der Erlaubniskennung zum Erlaubnisnamen zu erstellen:

 $codeToName = array_flip($permissions);

Zu diesem Zeitpunkt wird die Struktur von $ codetoname :

 [
    'view_user' => 'Benutzer anzeigen',
    'edit_user' => 'Benutzer bearbeiten',
    'delete_user' => 'Benutzer löschen',
    'publish_post' => 'Einen Artikel veröffentlichen',
    'edit_post' => 'Bearbeiten Sie den Artikel',
]

Als nächstes können Sie den entsprechenden Namen schnell über die Berechtigungskennung erhalten:

 $code = 'edit_post';
echo $codeToName[$code]; // Ausgabe:Bearbeiten Sie den Artikel

3.. In Kombination mit praktischen Anwendungsszenarien

Angenommen, Sie haben eine Berechtigungsüberprüfungsschnittstelle, die eine Reihe von Berechtigungskennungen zurückgibt:

 $userPermissions = ['view_user', 'edit_post'];

Sie möchten die chinesischen Namen dieser Berechtigungen in der Front-End-Schnittstelle anzeigen. Dies können Sie tun:

 $permissionNames = array_map(function($code) use ($codeToName) {
    return $codeToName[$code] ?? 'Unbekannte Berechtigungen';
}, $userPermissions);

print_r($permissionNames);

Das Ausgangsergebnis ist:

 Array
(
    [0] => Benutzer anzeigen
    [1] => Bearbeiten Sie den Artikel
)

4.. Dinge zu beachten

  1. Die Werte können nicht wiederholt werden : Array_flip () erfordert, dass der Wert des ursprünglichen Arrays nicht wiederholt werden kann, andernfalls überschreibt der folgende den vorherigen überschreibt. Zum Beispiel:

     $arr = ['A' => 'x', 'B' => 'x'];
    var_dump(array_flip($arr)); // Nur behalten 'x' => 'B'
    
  2. Geeignet für statische Zuordnung : Array_flip () eignet sich normalerweise für Systeme mit relativ fester Berechtigungsstruktur. Wenn Berechtigungen zur Laufzeit dynamisch generiert werden, wird empfohlen, ein Datenbank- oder Cache -Schema zu verwenden, um die Reverse -Mapping zu verarbeiten.

  3. In Kombination mit Cache zur Verbesserung der Leistung : Wenn die Berechtigungsdaten aus einer Datenbank- oder Konfigurationsdatei stammen, kann die Zuordnungsbeziehung zwischengespeichert werden, um den Overhead jeder Seitenanforderung zu verringern.

5. Zusammenfassung

Die Verwendung von Array_flip () ist eine einfache, schnelle und effiziente Methode für die gegenseitige Konvertierung von "Berechtigungsbeweisnamen" in Berechtigungssystemen. Insbesondere beim Umgang mit Schnittstellenanzeige oder Protokollierung können die Entwicklungseffizienz und die Lesbarkeit der Code erheblich verbessert werden.

Wenn Sie ein PHP-basiertes Berechtigungssystem entwickeln, versuchen Sie , Array_flip () auf Ihre Zuordnungslogik anzuwenden und die Komfort zu genießen, die sie mit sich bringt!