Aktueller Standort: Startseite> Neueste Artikel> Wie bekomme ich magische Konstanten in PHP über Get_Defined_Constants Funktion? Eine Erforschung der flexiblen Implementierung

Wie bekomme ich magische Konstanten in PHP über Get_Defined_Constants Funktion? Eine Erforschung der flexiblen Implementierung

M66 2025-06-13

In der PHP -Programmierung sind magische Konstanten sehr nützlich. Sie können einige dynamische Informationen liefern, wenn das Programm ausgeführt wird, z. B. den aktuellen Dateipfad, die Zeilennummer usw. Zu den gemeinsamen magischen Konstanten gehören __File__ , __dir__ , __line__ usw. Normalerweise können wir die Werte dieser magischen Konstanten durch die traditionelle konstante Methode nicht direkt erhalten. In diesem Artikel wird eine Problemumgehung vorgestellt, um in PHP magische konstante Werte durch die Funktion Get_Defined_Constants zu erhalten.

Was ist die Funktion get_defined_constants ?

get_defined_constants ist eine integrierte PHP-integrierte Funktion, die ein Array aller definierten Konstanten zurückgibt. Die Funktion ist wie folgt definiert:

 get_defined_constants(bool $categorize = false): array
  • Der Kategorieparameter bestimmt, ob die zurückgegebenen Konstanten nach Kategorie gruppiert werden. Standardmäßig gibt Falsch alle Konstanten als flaches Array zurück. Wenn auf True festgelegt wird, wird ein assoziatives Array mit Kategorien (z. B. Benutzer , Internal usw.) zurückgegeben.

Diese Funktion gibt ein Array zurück, das alle konstanten Namen und konstanten Werte enthält, einschließlich benutzerdefinierter Konstanten und PHP-integrierter Konstanten.

Holen Sie sich magische Konstanten

Magische Konstanten sind spezielle Konstanten, die mit PHP -Sprache ausgestattet sind, und verändern sich dynamisch, wenn das Programm ausgeführt wird. Zum Beispiel gibt __File__ den vollständigen Pfad der aktuellen Datei zurück, während __line__ die aktuelle Code -Zeilennummer zurückgibt. Diese Konstanten sind nicht modifiziert und werden normalerweise für Debugging- oder Datei-Inclusion-Operationen verwendet.

Durch Get_Defined_Constants können wir die Definition aller Konstanten in PHP erhalten, aber magische Konstanten sind nicht direkt einbezogen. Wenn wir also den Wert der magischen Konstante erhalten möchten, können wir während der Ausführung des PHP -Code einige Problemumgehungen mit anderen Informationen durchführen.

Beispiel: Erhalten Sie den Wert einer magischen Konstante

Hier ist ein Beispiel für die Erzielung von magischen konstanten Werten wie aktueller Dateipfad und Zeilennummer über get_defined_constants :

 <?php
// Holen Sie sich alle definierten Konstanten
$constants = get_defined_constants(true);

// Holen Sie sich die magischen Konstanten des aktuellen Dateipfads
$file_path = __FILE__;
echo "Aktueller Dateipfad: " . $file_path . "\n";

// Holen Sie sich die magische Konstante der aktuellen Code -Zeilennummer
$line_number = __LINE__;
echo "Aktuelle Zeilennummer: " . $line_number . "\n";

// Alle Konstanten ausgeben
echo "Alle definierten Konstanten:\n";
print_r($constants);

// Holen Sie sich einbezogen m66.net Domainname URL(Workaround -Implementierung)
$url = "http://m66.net/somepage";
echo "URL: " . $url . "\n";
?>

In diesem Beispiel verwenden wir zunächst die Funktion get_defined_constants , um alle definierten Konstanten zu erhalten, und geben dann die aktuelle Dateipfad- und Code -Zeilennummer über die magischen Konstanten __file__ und __line__ aus. Auf diese Weise erhalten wir indirekt den Wert der magischen Konstante.

Workaround -Implementierung

Da Get_Defined_Constants keinen direkten Zugriff auf magische Konstanten ermöglicht, können wir die Werte dieser Konstanten durch andere von PHP bereitgestellte Methoden manuell erfassen. Wenn Sie beispielsweise den Pfad und die Zeilennummer der aktuellen Datei dynamisch erhalten möchten, können Sie den folgenden Code verwenden:

 <?php
// Holen Sie sich den Pfad zur aktuellen Datei
$file_path = __FILE__;
echo "Aktueller Dateipfad:{$file_path}\n";

// Holen Sie sich die aktuelle Zeilennummer
$line_number = __LINE__;
echo "Aktuelle Zeilennummer:{$line_number}\n";

// Holen Sie sich das aktuelle Verzeichnis
$dir_path = __DIR__;
echo "Aktueller Verzeichnispfad:{$dir_path}\n";
?>

Zusammenfassen

Durch die Funktion Get_defined_Constants können wir die Definition der meisten Konstanten in PHP erhalten, aber für magische Konstanten ändern sie sich zur Laufzeit dynamisch, sodass wir die von PHP bereitgestellten magischen Konstanten verwenden müssen, um den entsprechenden Wert zu erhalten. Obwohl GET_DEFINED_CONSTANTS nicht direkt magische Konstanten bereitstellt, können wir diese Informationen über Workarounds erhalten und unsere Bedürfnisse in Kombination mit anderen Funktionen implementieren.

Hoffentlich kann dieser Artikel Ihnen helfen, besser zu verstehen, wie Sie die Definition von Konstanten in PHP über get_defined_constants erhalten und Problemumgehungen erkunden, um magische Konstanten in PHP zu erhalten. Wenn Sie ähnliche Probleme in der tatsächlichen Entwicklung haben, können Sie diese Methode versuchen, diese zu lösen.