Zmienne globalne i lokalne w PHP

W programowaniu PHP, podobnie jak w wielu innych językach programowania, zmienna może być dostępna w różnych zakresach w zależności od miejsca, w którym została zdefiniowana. Rozróżniamy zmienne lokalne, globalne oraz superglobalne. Każdy z tych typów zmiennych ma swoje specyficzne zastosowania i reguły dotyczące zakresu dostępności. W tej lekcji przyjrzymy się bliżej tym rodzajom zmiennych oraz ich zasięgowi w kontekście funkcji w PHP.

Zmienne lokalne

Zmienne lokalne to zmienne zdefiniowane wewnątrz funkcji. Są dostępne tylko i wyłącznie w obrębie tej funkcji i nie są widoczne poza nią. Oznacza to, że zmienne lokalne są tworzone przy wejściu do funkcji i niszczone przy jej opuszczeniu.

Zmienne globalne

Zmienne globalne to zmienne zdefiniowane poza jakąkolwiek funkcją. Aby uzyskać dostęp do zmiennej globalnej wewnątrz funkcji, musimy użyć słowa kluczowego global przed nazwą zmiennej.

Zmienne superglobalne

PHP oferuje kilka predefiniowanych zmiennych superglobalnych, które są dostępne w każdym zakresie skryptu. Przykładami takich zmiennych są $_GET, $_POST, $_SESSION, $_COOKIE, $_SERVER itd. Zmienne te są dostępne w każdym miejscu skryptu bez konieczności używania specjalnych słów kluczowych.

Przykład kodu

Poniżej przedstawiam przykład kodu PHP wraz z prostym HTML, który ilustruje użycie zmiennych lokalnych, globalnych oraz superglobalnych w funkcjach.

<?php
// Zmienna globalna
$globalVar = "Jestem zmienną globalną";

function testScope() {
    // Użycie zmiennej globalnej wewnątrz funkcji
    global $globalVar;
    echo "<p>$globalVar</p>";

    // Zmienna lokalna
    $localVar = "Jestem zmienną lokalną";
    echo "<p>$localVar</p>";
}

testScope();

// Próba dostępu do zmiennej lokalnej poza funkcją (spowoduje błąd)
// echo "<p>$localVar</p>";

// Użycie zmiennej superglobalnej
echo "<p>Nazwa serwera: " . $_SERVER['SERVER_NAME'] . "</p>";
?>

<!DOCTYPE html>
<html lang="pl">
<head>
    <meta charset="UTF-8">
    <title>Zakres Zmiennych w PHP</title>
</head>
<body>
    <h1>Praca ze zmiennymi w PHP</h1>
    <!-- Tutaj można dodać więcej elementów HTML -->
</body>
</html>

W powyższym przykładzie:

  • Użyliśmy zmiennej globalnej $globalVar wewnątrz funkcji testScope dzięki słowu kluczowemu global.
  • Zdefiniowaliśmy zmienną lokalną $localVar wewnątrz funkcji testScope, która jest dostępna tylko w tej funkcji.
  • Wykorzystaliśmy zmienną superglobalną $_SERVER do wyświetlenia nazwy serwera, co pokazuje, że zmienne superglobalne są dostępne w każdym miejscu skryptu.

Pamiętaj, że próba dostępu do zmiennej lokalnej poza jej funkcją spowoduje błąd, ponieważ jej zakres jest ograniczony do funkcji, w której została zdefiniowana.

Scroll to Top