CodeBlanks Logo Icon CodeBlanks

Süper global nedir?

PHP kursu · Başlangıç · Ders 94/116

Süper global değişkenlerin her kapsamdan erişilebilir olduğunu öğrenirsin.

Süper global nedir?

Bir süper global (superglobal), PHP tarafından önceden tanımlanmış ve her kapsamdan doğrudan erişilebilen dizi türünde bir değişkendir. Bir fonksiyonun içinde $_SERVER kullandığında global anahtar kelimesine ihtiyaç yoktur; süper global olduğu için doğrudan görünür.

Dokuz süper global vardır: $GLOBALS, $_SERVER, $_GET, $_POST, $_REQUEST, $_SESSION, $_COOKIE, $_ENV ve $_FILES. Her biri farklı bir veri kaynağını temsil eder; örneğin $_GET URL parametrelerini, $_POST form gövdesini taşır.

Her kapsamdan erişim

Normal bir değişken fonksiyon içinde görünmez; global anahtar kelimesiyle içeri alınmalıdır. Süper globaller farklıdır: fonksiyon gövdesinde doğrudan kullanılabilirler. Bu özellik onlara 'süper' sıfatını kazandırır.

Örnek: function show() { echo $_SERVER['PHP_SELF']; }. Burada $_SERVER fonksiyon parametresi değil, süper globaldir; global yazmaya gerek yoktur. Bu yüzden $_GET, $_POST ve benzerleri istek işleyen fonksiyonlarda kolayca kullanılır.

Uygulama Fonksiyon içinde $_SERVER kullan

showHost adında parametresiz bir fonksiyon tanımla. Gövdede echo $_SERVER['HTTP_HOST']; yaz. Fonksiyonun dışında $_SERVER['HTTP_HOST'] = "shop.test"; satırını ekle. Sonra showHost(); çağrısı yap.

Örnek çözümü göster
function showHost() { ... } ile tanımla, gövdeye echo $_SERVER['HTTP_HOST']; yaz, dışarıda $_SERVER['HTTP_HOST'] = "shop.test"; ata, sonra showHost(); çağır.
Örnek çözüm:
<?php
// showHost fonksiyonunu tanımla ve çağır
$_SERVER['HTTP_HOST'] = "shop.test";
function showHost() {
    echo $_SERVER['HTTP_HOST'];
}
showHost();

Kendini test et

  1. Hangisi süper global DEĞİLDİR?

    • $_GET
    • $_POST
    • $_FORM
    • $_SERVER
    Cevabı göster

    $_FORM — Doğru. PHP'de $_FORM adında bir süper global yoktur; form verileri $_POST içinde tutulur.

  2. Fonksiyon içinde süper globali tamamla

    function showHost() {
        echo ____['HTTP_HOST'];
    }
    Cevabı göster
    function showHost() {
        echo $_SERVER['HTTP_HOST'];
    }
  3. Süper globali kaynağıyla eşle

    $_GET
    URL parametreleri
    $_POST
    Form gövdesi
    $_SERVER
    Sunucu bilgileri
    $_COOKIE
    Çerezler

Başlangıç bölümündeki tüm dersler