Aktueller Standort: Startseite> Neueste Artikel> Suchen Sie schnell benutzerdefinierte Konstanten mit Get_Defined_Constants (True) ['Benutzer']

Suchen Sie schnell benutzerdefinierte Konstanten mit Get_Defined_Constants (True) ['Benutzer']

M66 2025-05-26

In PHP ist eine Konstante eine Kennung, die während der Skriptausführung nicht veränderlich ist. Normalerweise definieren wir Konstanten durch das Schlüsselwort define () oder const . Aber manchmal müssen wir während der Entwicklung oder des Debuggens sehen, welche Konstanten im aktuellen Skript oder Anwendung definiert sind. Zu diesem Zeitpunkt ist die PHP-integrierte Funktion get_defined_constants () nützlich.

Diese Funktion kann auf zwei Arten verwendet werden:

  • get_defined_constants () : Gibt ein assoziatives Array zurück, das alle definierten Konstanten enthält.

  • get_defined_constants (true) : Gibt ein mehrdimensionales Array zurück, gruppieren Konstanten nach ihrer Quelle, wie Internal , Benutzer (benutzerdefiniert) usw.

Dieser Artikel konzentriert sich auf get_defined_constants (true) ['Benutzer'] , dh alle benutzerdefinierten Konstanten anzeigen.

Beispiel: Nutzungsdefinierte Konstanten erhalten

 <?php

define('SITE_NAME', 'Beispielwebsite');
define('BASE_URL', 'https://m66.net');

$user_constants = get_defined_constants(true)['user'];

echo '<pre>';
print_r($user_constants);
echo '</pre>';

Nach dem Ausführen des obigen Codes ähnelt die Ausgabe wie folgt:

 Array
(
    [SITE_NAME] => Beispielwebsite
    [BASE_URL] => https://m66.net
)

Wir können sehen, dass nur Konstanten, die wir explizit durch Define () deklarieren, in der Benutzergruppe erscheinen. Konstanten, die standardmäßig innerhalb von PHP (z. B. E_ALL , PHP_VERSION usw.) definiert sind, werden nicht enthalten.

Zweckszenarien

1. Debugug -Benutzerkonstanten

In großen Projekten können konstante Definitionen über mehrere Dateien verteilt werden. Verwenden Sie Get_Defined_Constants (TRUE) ['Benutzer'], um alle benutzerdefinierten Konstanten in der aktuellen Umgebung schnell aufzulisten, und helfen Sie Entwicklern, zu bestätigen, ob eine Konstante wiederholt definiert, überschrieben oder falsch geschrieben wurde.

2. Erstellen Sie ein konstantes Exportwerkzeug

In einigen Konfigurationsmanagementsystemen möchten wir möglicherweise alle benutzerdefinierten Konstanten in JSON oder in anderen Formaten sparen. Mit JSON_Encode () ist diese Funktion einfach zu implementieren.

 <?php

define('API_URL', 'https://m66.net/api');
define('VERSION', '1.0.0');

$user_constants = get_defined_constants(true)['user'];

header('Content-Type: application/json');
echo json_encode($user_constants, JSON_PRETTY_PRINT);

Ausgabe:

 {
    "API_URL": "https://m66.net/api",
    "VERSION": "1.0.0"
}

3.. Integrieren Sie sich in Frameworks oder Plug-Ins

In einigen benutzerdefinierten Plugins oder Frameworks möchten wir möglicherweise, dass das Plugin beim Registrieren automatisch die konstante Konfiguration der aktuellen Umgebung erkennt. Durch diese Funktion können alle definierten Konstanten ohne Ein- und Geschäftslogikverarbeitung oder Kompatibilitätsprüfungen erhalten werden.

Dinge zu beachten

  • Nur Konstanten, die explizit über define () oder const deklariert werden, werden als Benutzer klassifiziert.

  • Wenn eine Bibliothek von Drittanbietern verwendet wird, werden die bei der Initialisierung definierten Konstanten auch als Benutzerkonstanten angesehen.

  • Es wird nicht empfohlen, diese Funktion in Produktionsumgebungen häufig aufzurufen, um die Ergebnisse auszugeben, insbesondere um seinen Inhalt dem Benutzer auszusetzen, da sie möglicherweise sensible Konfigurationsinformationen enthalten.

Zusammenfassung

get_defined_constants (true) ['Benutzer'] ist ein sehr praktisches Debugging- und Konfigurationshelfer. Es bietet eine einfache und intuitive Oberfläche in Szenarien, in denen aktuelle benutzerdefinierte Konstanten überprüft werden müssen. Unabhängig davon, ob es sich um Protokolle handelt, Konfigurations -Snapshots generiert oder Kompatibilitätsprüfungen durchführen, handelt es sich um ein leistungsstarkes Tool, das es wert ist, gemeistert zu werden.