In PHP sind Konstanten und globale Variablen zwei häufige variable Typen. Sie unterscheiden sich signifikant in Umfang und Sichtbarkeit. Konstanten sind normalerweise im gesamten Skript sichtbar, während globale Variablen skopiert werden. In diesem Artikel untersuchen wir die Sichtbarkeitsunterschiede zwischen Konstanten und globalen Variablen unter verschiedenen Bereichen, indem wir die integrierte Funktion Get_defined_Constants von PHP verwenden.
Zunächst müssen wir die grundlegenden Konzepte von Konstanten und globalen Variablen verstehen.
Eine Konstante ist eine Kennung, die im gesamten Skriptlebenszyklus unveränderlich ist. Sobald eine Konstante definiert ist, kann ihr Wert nicht geändert werden. Konstanten müssen bei definiert nicht mit $ markiert werden, und sie können überall im Skript zugegriffen werden.
Eine globale Variable bezieht sich auf eine im globalen Bereich definierte Variable. Es ist innerhalb einer Funktion oder Klassenmethode nicht direkt zugänglich und muss mit dem globalen Schlüsselwort oder über das $ Globals -Array zugegriffen werden.
get_defined_constants ist eine sehr nützliche PHP -Funktion, die alle definierten Konstanten auflistet. Wir können es verwenden, um die Sichtbarkeit von Konstanten in verschiedenen Bereichen zu überprüfen. Hier ist ein Beispielcode, der zeigt, wie die Funktion von GET_DEFINED_CONSTANTs verwendet wird, um die Sichtbarkeit einer Konstante zu erhalten:
<?php
// Konstanten definieren
define('MY_CONSTANT', 'Hello, World!');
function testConstantVisibility() {
// Holen Sie sich alle Konstanten im aktuellen Bereich
print_r(get_defined_constants());
}
testConstantVisibility();
?>
In diesem Code definieren wir eine konstante my_constant und drucken alle Konstanten mit der Funktion Get_Defined_Constants in der Funktion testconstantvissibilität . Unabhängig von dem Umfang, in dem wir uns befinden, ist der ständige My_Constant sichtbar.
Array
(
[MY_CONSTANT] => Hello, World!
...
)
Wie Sie aus der Ausgabe erkennen können, ist die My_Constant -Konstante in der Funktion immer noch sichtbar, was bedeutet, dass die Konstante in PHP global sichtbar ist.
Globale Variablen unterscheiden sich von Konstanten und können nicht direkt innerhalb einer Funktion zugegriffen werden. Wir müssen das globale Keyword- oder $ Globals -Array verwenden, um globale Variablen zuzugreifen. Hier ist ein Code, der die Sichtbarkeit globaler Variablen demonstriert:
<?php
// Definieren Sie globale Variablen
$myGlobalVar = 'I am a global variable!';
function testGlobalVariableVisibility() {
global $myGlobalVar; // verwenden global Schlüsselwörter
echo $myGlobalVar;
}
testGlobalVariableVisibility();
?>
I am a global variable!
Durch die Verwendung des globalen Keywords innerhalb der Funktion können wir auf die globale Variable $ myGlobalvar zugreifen und ihren Wert erfolgreich ausgeben.
Vergleichen wir nun die Leistung von Konstanten und globalen Variablen unter verschiedenen Bereichen. Über den folgenden Code können wir die Sichtbarkeitsunterschiede zwischen Konstanten und globalen Variablen gleichzeitig testen.
<?php
// Konstanten definieren
define('MY_CONSTANT', 'Hello, World!');
// Definieren Sie globale Variablen
$myGlobalVar = 'I am a global variable!';
function testVisibility() {
// Holen Sie sich alle Konstanten im aktuellen Bereich
echo "Konstante MY_CONSTANT: " . MY_CONSTANT . "\n";
// verwenden global Schlüsselwörter访问Globale Variablen
global $myGlobalVar;
echo "Globale Variablen myGlobalVar: " . $myGlobalVar;
}
testVisibility();
?>
Konstante MY_CONSTANT: Hello, World!
Globale Variablen myGlobalVar: I am a global variable!
In diesem Beispiel sehen wir, dass Konstanten direkt überall zugegriffen werden können, während über das globale Schlüsselwort innerhalb der Funktion auf globale Variablen zugegriffen werden müssen. Dies ist der Hauptunterschied im Bereich zwischen Konstanten und globalen Variablen.
In PHP gibt es signifikante Unterschiede in der Sichtbarkeit zwischen Konstanten und globalen Variablen. Konstanten sind im gesamten Drehbuch unabhängig von ihrem Umfang sichtbar. Globale Variablen sind nur im globalen Bereich sichtbar und müssen über das globale Keyword- oder $ Globals -Array zugreifen. Dieser Unterschied ist für das Umfangsmanagement bei der Programmierung wichtig, und das Verständnis ihres Verhaltens kann den Entwicklern helfen, bessere Code zu schreiben und potenzielle Fehler zu vermeiden.