In PHP sind Konstanten Identifikatoren, die während der Skriptausführung nicht geändert werden können, und werden normalerweise verwendet, um Daten zu speichern, die sich nicht weltweit ändern. Das Definieren von Konstanten verwendet normalerweise die Funktion define () . Bei der Bestimmung, ob eine Konstante existiert und zur Laufzeit dynamisch auf ihren Wert zugreift, werden die beiden Funktionen definiert () und konstant () üblicherweise verwendet. In diesem Artikel wird eingehend eingehalten, wie diese beiden Funktionen verwendet werden und wie man sie kombiniert, um Konstanten flexibel zu betreiben.
definiert (Zeichenfolge $ Name): bool
Bestimmt, ob eine Konstante namens $ name definiert wurde. Gibt einen Booleschen Wert zurück.
Konstant (Zeichenfolge $ Name): gemischt
Gibt den Wert des konstanten $ namens zurück. Wenn die Konstante undefiniert ist, wird ein Fehler geworfen.
Diese beiden Funktionen sind leistungsstarke Tools zum Umgang mit dynamischen konstanten Namen, insbesondere in Szenarien wie Konfiguration, Plug-in-Laden, Berechtigungsprüfung usw.
Verwenden Sie Define () , um Konstanten zu definieren:
define('APP_ENV', 'production');
Sein Wert kann dann direkt über die APP_ENV -Konstante verwiesen werden.
In einigen Fällen können Konstanten aus Konfigurationsdateien oder externen Systemen stammen. Wir können überprüfen, ob sie vor der Verwendung definiert sind:
if (defined('APP_ENV')) {
echo 'Die aktuelle Umgebung ist: ' . APP_ENV;
} else {
echo 'Undefinierte Umweltkonstanten';
}
Wenn Sie konstante Namen über Variablen verweisen möchten, müssen Sie Constant () verwenden:
$constName = 'APP_ENV';
if (defined($constName)) {
echo 'Die aktuelle Umgebung ist: ' . constant($constName);
}
Diese Methode wird häufig in Komponentenkonfiguration oder Plug-in-Mechanismen verwendet, wie z. B.:
$plugin = 'Uploader';
$constName = 'PLUGIN_' . strtoupper($plugin) . '_ENABLED';
if (defined($constName) && constant($constName) === true) {
echo "Plugin {$plugin} Ermöglicht";
}
Angenommen, es gibt eine Multi-Umwelt-Konfigurationsdatei, die die Konfiguration dynamisch gemäß den definierten Umgebungskonstanten lädt:
define('APP_ENV', 'development');
$configName = 'CONFIG_' . strtoupper(APP_ENV) . '_DB';
define('CONFIG_DEVELOPMENT_DB', 'mysql://user:[email protected]/devdb');
define('CONFIG_PRODUCTION_DB', 'mysql://user:[email protected]/proddb');
if (defined($configName)) {
$dbConfig = constant($configName);
echo "Datenbankverbindungsinformationen:$dbConfig";
}
Angenommen, Sie definieren eine Reihe von Erlaubniskonstanten:
define('PERM_USER_EDIT', true);
define('PERM_USER_DELETE', false);
Sie können eine Funktion verwenden, um definierte () und konstant () zu kombinieren, um die Berechtigungen zu bestimmen:
function hasPermission(string $perm): bool {
$permConst = 'PERM_' . strtoupper($perm);
return defined($permConst) && constant($permConst) === true;
}
if (hasPermission('user_edit')) {
echo 'Sie haben die Erlaubnis, Benutzer zu bearbeiten';
}
Der in Constant () übergebene konstante Name muss eine Zeichenfolge sein. Wenn die Konstante nicht existiert, wird eine Warnung geworfen.
Mit definierten () kann die durch undefinierten Konstanten verursachten Fehler sicher verhindern.
Konstante Namen sind Fallempfindungen (es sei denn, der dritte Parameter von Define () ist auf True eingestellt, dieser Parameter wurde jedoch nach Php 7.3 veraltet).
Defined () und Constant () sind leistungsstarke Werkzeuge zum Umgang mit dynamischen Konstanten, insbesondere für dynamische Konfigurationsbelastungen, Plug-in-Systeme, Berechtigungssteuerung und andere Szenarien. Wenn Sie diese beiden Funktionen vernünftigerweise verwenden, können Sie Ihr PHP -Programm flexibler, robuster und modularer machen.