In PHP ist eine Konstante eine Kennung, die nicht modifiziert wird und normalerweise verwendet wird, um Werte zu halten, die während des Programms unverändert bleiben. Zum Debuggen oder Lernzwecken müssen wir manchmal alle im aktuellen Skript definierten Konstanten anzeigen. Glücklicherweise bietet PHP eine integrierte Funktion get_defined_constants () , mit der Informationen zu allen verfügbaren Konstanten gleichzeitig erhalten werden können.
In diesem Artikel wird vorgestellt, wie die Funktion von GET_DEFINED_CONSTANTS () verwendet wird, und erklärt, wie Sie konstante Werte in einem klaren und organisierten Format ausgeben, um die Lesbarkeit und Praktikabilität zu verbessern.
get_defined_constants ([bool $ categorize = false]): Array
Diese Funktion gibt ein Array zurück, das alle definierten konstanten Namen und deren entsprechenden Werte enthält.
Wenn kein Argument übergeben (oder falsch) ist, wird ein flaches Array mit dem konstanten Namen als Schlüssel zurückgegeben und der Wert ist der konstante Wert.
Wenn True übergeben wird, wird das zurückgegebene 2D -Array nach dem "Modul" der Konstante wie Core , PCRE , Benutzer usw. klassifiziert.
Hier ist ein einfaches Beispiel, das zeigt, wie Sie alle Konstanten erhalten und in tabellarischer Form drucken können:
<?php
$constants = get_defined_constants(true);
// Nur benutzerdefinierte Konstanten
$userConstants = $constants['user'];
echo "<table border='1' cellpadding='5' cellspacing='0'>";
echo "<thead><tr><th>Konstanter Name</th><th>Konstanter Wert</th></tr></thead><tbody>";
foreach ($userConstants as $name => $value) {
echo "<tr><td>{$name}</td><td>" . htmlspecialchars(print_r($value, true)) . "</td></tr>";
}
echo "</tbody></table>";
?>
In diesem Beispiel extrahieren wir nur die Konstanten in der Benutzerkategorie , dh Konstanten, die vom Programmierer im Skript manuell definiert wurden, über die Schlüsselwörter define () oder const . Der Ausgabeinhalt ist eine Standard -HTML -Tabelle für einfache Anzeige auf Webseiten.
Wenn Sie Konstanten in allen Kategorien anzeigen und die Ergebnisse in Gruppen anzeigen möchten, können Sie den folgenden Code verwenden:
<?php
$constants = get_defined_constants(true);
foreach ($constants as $category => $constGroup) {
echo "<h2>Einstufung:{$category}</h2>";
echo "<table border='1' cellpadding='5' cellspacing='0'>";
echo "<thead><tr><th>Konstanter Name</th><th>Konstanter Wert</th></tr></thead><tbody>";
foreach ($constGroup as $name => $value) {
echo "<tr><td>{$name}</td><td>" . htmlspecialchars(print_r($value, true)) . "</td></tr>";
}
echo "</tbody></table><br>";
}
?>
Auf diese Weise wird jede konstante Kategorie separat angezeigt, wie z. B. Kern, PCRE, Benutzer, Curl und andere Module, was sehr geeignet ist, um ein tiefes Verständnis der vordefinierten Konstanten in der PHP -Betriebsumgebung zu verzeichnen.
Wenn Sie Konstanten in maschinenlesbarer Form exportieren möchten, um in anderen Systemen wie JavaScript- oder Protokollierungssystemen eine einfache Verwendung zu verwenden, können Sie sie in JSON konvertieren:
<?php
header('Content-Type: application/json');
echo json_encode(get_defined_constants(true), JSON_PRETTY_PRINT);
?>
Auf diese Weise ist die Ausgangsinhaltsstruktur klar und für das Remote -Debugging oder die Systemintegration geeignet.
Angenommen, Sie möchten benutzerdefinierte konstante Werte an einen Remote-Server zur Protokollierung senden (z. B. http://m66.net/log.php), können Sie dies tun:
<?php
$userConstants = get_defined_constants(true)['user'];
$data = json_encode($userConstants);
// An Remote Server senden
$url = "http://m66.net/log.php";
$options = [
'http' => [
'method' => 'POST',
'header' => "Content-Type: application/json\r\n",
'content' => $data,
],
];
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
?>
Diese Methode kann zum Debuggen von Tools, API -Tracking oder Bereitstellung von Verifizierungsskripten verwendet werden.
get_defined_constants () ist eine leistungsstarke Funktion, die uns nicht nur dabei hilft, alle vom System und Benutzer definierten Konstanten zu erhalten, sondern sie auch in verschiedenen Formaten ausgibt und verarbeitet. Unabhängig davon, ob es sich um Web -Displays, Protokollierung oder Remote -Aufruf handelt, kann die flexible Verwendung in Kombination mit tatsächlichen Szenarien unsere Entwicklungseffizienz und Systembeobachtbarkeit erheblich verbessern.
Das Mastering dieser Funktion entspricht dem Öffnen eines Fensters in der PHP -Laufzeitwelt.