Aktueller Standort: Startseite> Neueste Artikel> Warum erscheinen einige Konstanten als Nullwerte?

Warum erscheinen einige Konstanten als Nullwerte?

M66 2025-05-22

Die Funktion get_defined_constants gibt ein Array zurück, das alle definierten Konstanten und ihre entsprechenden Werte enthält. Const wird durch das Schlüsselwort define () oder const definiert und im gesamten Skript unveränderlich.

Der folgende Code zeigt beispielsweise, wie man Konstanten definiert und GET_DEFINED_CONSTANTs verwendet, um definierte Konstanten anzuzeigen:

 define("SITE_URL", "https://m66.net");
define("SITE_NAME", "M66");

$constants = get_defined_constants();
print_r($constants);

Die Ausgabe ähnelt:

 Array
(
    [SITE_URL] => https://m66.net
    [SITE_NAME] => M66
    ...
)

Auf diese Weise können Sie alle definierten Konstanten und deren Werte sehen.

Warum erscheinen einige Konstanten als Nullwerte?

Manchmal erscheinen die Werte einiger Konstanten leer, wenn sie gründen_defined_constants ausgeführt werden. Diese Situation kann durch mehrere Gründe verursacht werden:

  1. Konstanten werden nicht korrekt zugewiesen <br> Eine Konstante muss bei definiert sofort einen Wert zugewiesen werden. Wenn eine Konstante in der Anweisung define () oder const nicht ordnungsgemäß bereitgestellt wird oder der Wert eine leere Zeichenfolge ist, wird der Wert dieser Konstante als leer angezeigt, wenn er durch get_defined_constants erhalten wird.

     define("EMPTY_CONSTANT", "");
    

    Der obige Code definiert einen konstanten leeren_constant mit einer leeren Zeichenfolge. Wenn GET_DEFINED_CONSTANTS aufgerufen wird, wird in der Ausgabe angezeigt:

     [EMPTY_CONSTANT] => 
    
  2. Umfang der konstanten Definition <br> In PHP ist der Umfang der Konstanten normalerweise global. Wenn Sie jedoch Konstanten innerhalb bestimmter Bereiche (z. B. innerhalb von Funktionen) definieren, werden sie möglicherweise nicht von get_defined_constants zurückgegeben.

     function defineInsideFunction() {
        define("FUNC_CONST", "Hello, World!");
    }
    
    defineInsideFunction();
    print_r(get_defined_constants());
    

    Wenn Sie eine Konstante innerhalb der Funktion definieren, wird sie möglicherweise nicht im Ergebnis von get_defined_constants angezeigt. Um dieses Problem zu vermeiden, stellen Sie sicher, dass die Definition von Konstanten im globalen Bereich durchgeführt wird.

  3. Bedingte konstante Definition <br> Wenn die Definition einer Konstante in einigen bedingten Aussagen verpackt ist und die Bedingung nicht erfüllt ist, wird die Konstante nicht definiert. Daher werden diese Konstanten möglicherweise nicht angezeigt, wenn sie über get_defined_constants abgerufen werden.

     if (false) {
        define("CONDITION_CONST", "This will not be defined");
    }
    

    In diesem Fall wird Condition_Const nicht im Ergebnis von get_defined_constants angezeigt, da das bedingte Urteil fehlschlägt und die Konstante nicht definiert ist.

  4. Fehlende vordefinierte Konstanten
    PHP selbst definiert einige vordefinierte Konstanten zur Laufzeit, wie z. B. PHP_VERSION , PHP_OS usw., aber in einigen speziellen Fällen, wie z. B. benutzerdefinierte Umgebungskonfigurationen, laden PHP möglicherweise nicht vordefinierte Konstanten, sodass sie möglicherweise nicht angezeigt werden.

    In bestimmten Umgebungen können bestimmte Konstanten je nach Umwelt variieren. Wenn Sie vordefinierte Konstanten in einer bestimmten Konfiguration leer sehen, müssen Sie möglicherweise Ihre PHP -Konfiguration oder die Auslaufumgebung überprüfen.

Wie kann man die Situation vermeiden, in der Konstanten null sind?

Um Konstanten zu vermeiden, die Nullwerte zeigen, stellen Sie sicher, dass Sie Konstanten definieren:

  1. Stellen Sie sicher, dass die Konstante einen gültigen Wert hat, wenn es definiert ist und keine leere Zeichenfolge ist.

  2. Stellen Sie sicher, dass die Definition von Konstanten weltweit durchgeführt wird und vermeiden Sie nicht, nur in lokalen Bereichen definiert zu werden.

  3. Bei der Definition einer Konstanten in einer bedingten Aussage ist es erforderlich, sicherzustellen, dass die Bedingung immer gilt oder vor der ständigen Definition bedingte Urteile fällt.

  4. Wenn die vordefinierte Konstante fehlt, überprüfen Sie Ihre PHP -Umgebungskonfiguration, um sicherzustellen, dass die relevanten Konstanten zur Laufzeit korrekt geladen werden.