Aktueller Standort: Startseite> Neueste Artikel> Unterschiede von get_defined_constants () in verschiedenen PHP -Versionen

Unterschiede von get_defined_constants () in verschiedenen PHP -Versionen

M66 2025-05-22

get_defined_constants () ist eine integrierte Funktion in PHP, um alle definierten Konstanten zu erhalten. Es gibt ein assoziatives Array zurück, in dem der Schlüssel der konstante Name ist und der Wert der konstante Wert ist. Dies ist nützlich, wenn Sie die Laufzeitumgebung debugieren, reflektieren oder analysieren. In verschiedenen Versionen von PHP kann das Verhalten dieser Funktion jedoch einige Unterschiede aufweisen, die sich hauptsächlich in den folgenden Aspekten widerspiegeln:

1. Die Anzahl und Art der Konstanten ändern sich

Mit der Entwicklung von PHP werden ständig neue Kernkonstanten eingeführt, insbesondere nachdem neue Erweiterungen hinzugefügt oder vorhandene Module nachgeagnet werden. In PHP 7.x und PHP 8.x führten beispielsweise Änderungen des Fehlerhandhabungsmechanismus zur Einführung einer großen Anzahl neuer E_* -Fehlerebene.

Beispiel:

 print_r(array_keys(get_defined_constants()));

In PHP 5.6 sehen Sie möglicherweise keine Zusammenführungskonstanten wie E_error | E_Recoverable_error , aber nach Php 7 wird es viele weitere Definitionen solcher kombinierten Werte geben.

2. Verhaltensänderungen der Klassifizierungsparameter ( get_defined_constants (true) )

Ab PHP 5.3 unterstützt Get_Defined_Constants () einen booleschen Parameter $ kategorisieren , und wenn sie auf TRUE eingestellt sind, werden Konstanten nach Erweiterung klassifiziert.

Beispiel:

 print_r(get_defined_constants(true));

In verschiedenen PHP -Versionen können sich die Klassifizierungsnamen verschiedener Erweiterungsmodule ändern. Zum Beispiel:

  • Arrays in PHP 7.2 können Kern , PCre , SPL , Datum , libxMl , OpenSSL , Curl usw. enthalten.

  • Wie FFI , Natrium und Faser, die nach PHP 8.0 eingeführt wurden, werden ebenfalls zu den Ausgangsergebnissen hinzugefügt.

3.. Unterschiede zwischen Zusammenstellung und Betriebsumgebungen

Ob bestimmte Konstanten in den Ergebnissen von get_defined_constants () erscheinen, kann durch Konfigurationsdateien wie Php.ini oder Kompilieroptionen beeinflusst werden. Zum Beispiel, ob Zend Opcache aktiviert ist, ob bestimmte Erweiterungsmodule geladen sind, usw.

Beispielcode (in der CLI ausgeführt):

 define('MY_APP_VERSION', '1.0.0');
print_r(get_defined_constants());

Diese Ausgabe ist häufig inkonsistent zwischen dem Entwicklungsserver und dem Produktionsserver, da die von ihnen aktivierten Erweiterungs- und Konfigurationsparameter unterschiedlich sein können.

4. Neu eingeführte Sprachstruktur und eingebaute Konstanten

Php 8 führt Syntaxfunktionen wie JIT ein, übereinstimmen Ausdrücke, Attribute usw. und bringt auch neue Konstanten entsprechend mit. Ausführen von get_defined_constants () findet das Auftreten von Konstanten wie PHP_FD_SETSIZE , T_MATCH , T_ATTRIBUTE usw.

Diese neuen Konstanten existieren in der alten Version überhaupt nicht. Wenn Sie sich also auf diese Konstanten verlassen, wenn Sie einen hochkompatiblen Code schreiben, müssen Sie die definierte () -Funktion verwenden, um zu beurteilen.

5. Änderung oder löschen Sie konstante Werte

In seltenen Fällen werden einige definierte Konstanten in einer neuen Version geändert oder verworfen. Während das PHP -Team normalerweise die Rückwärtskompatibilität gewährleistet, wird es nicht ausgeschlossen, Anpassungen vorzunehmen, wenn die Upgrades der großen Versionsanpassungen aktualisiert werden. Beispielsweise können einige Erweiterungen, die mit dem zugrunde liegenden System interagieren, den Standardwert ändern oder bestimmte Konstanten löschen, die nicht mehr unterstützt werden, da sie auf Aktualisierungen der C -Bibliothek beruhen.