PHP Global Değişkenleri - Superglobal Değişkenler

Superglobal değişkenler, PHP 4.1.0'da tanıtıldı ve tüm etki alanında her zaman kullanılabilir olan yerleşik değişkenlerdir.

PHP Global Değişkenleri - Superglobal Değişkenler

PHP'teki birçok önceden tanımlanmış değişken 'superglobal'dir, bu da bu değişkenlerin bir betik boyunca tüm etki alanında kullanılabilir olduğunu anlamına gelir. Fonksiyon veya yöntem içinde global $variable; çalıştırılmadan bile erişilebilirler.

Bu superglobal değişkenler şunlardır:

  • $GLOBALS
  • $_SERVER
  • $_REQUEST
  • $_POST
  • $_GET
  • $_FILES
  • $_ENV
  • $_COOKIE
  • $_SESSION

Bu bölüm, bazı superglobal değişkenleri tanıtacak ve daha sonra diğer superglobal değişkenleri açıklamaya devam edecektir.

$GLOBALS — Tüm etki alanında kullanılabilir olan tüm değişkenlere atıfta bulunur

$GLOBALS bu global değişken, PHP betiklerindeki herhangi bir yerde global değişkenlere erişmek için kullanılır (fonksiyon veya yöntemden herhangi birinde).

PHP, adı $GLOBALS[index] olan dizisinde tüm global değişkenleri saklar. Değişkenin adı dizinin anahtarıdır.

Aşağıdaki örnek, superglobal değişken $GLOBALS'ın nasıl kullanılacağını gösterir:

Örnek

<?php 
$x = 75; 
$y = 25;
function addition() { 
  $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; 
}
addition(); 
echo $z; 
?>

Çalıştırma Örneği

Yukarıdaki örnekte, z $GLOBALS dizisi içindeki bir değişken olduğu için, fonksiyon dışında da erişilebilir.

PHP $_SERVER

$_SERVER bu superglobal değişken, başlık, yol ve betik konum bilgilerini saklar.

Aşağıdaki örnek, $_SERVER içindeki bazı unsurların nasıl kullanılacağını gösterir:

Örnek

<?php 
echo $_SERVER['PHP_SELF'];
echo "<br>";
echo $_SERVER['SERVER_NAME'];
echo "<br>";
echo $_SERVER['HTTP_HOST'];
echo "<br>";
echo $_SERVER['HTTP_REFERER'];
echo "<br>";
echo $_SERVER['HTTP_USER_AGENT'];
echo "<br>";
echo $_SERVER['SCRIPT_NAME'];
?>

Çalıştırma Örneği

Aşağıdaki tablo, $_SERVER içinde erişebileceğiniz en önemli öğeleri listeler:

Element/Kod Açıklama
$_SERVER['PHP_SELF'] Mevcut betiği çalıştıran dosyanın adını döndürür.
$_SERVER['GATEWAY_INTERFACE'] Sunucunun kullandığı CGI standartlarının sürümünü döndürür.
$_SERVER['SERVER_ADDR'] Mevcut betiğin çalıştığı sunucunun IP adresini döndürür.
$_SERVER['SERVER_NAME'] Mevcut betiğin çalıştığı sunucunun ana bilgisayar adını döndürür (örneğin www.codew3c.com).
$_SERVER['SERVER_SOFTWARE'] Sunucu tanıtım dizgisini döndürür (örneğin Apache/2.2.24).
$_SERVER['SERVER_PROTOCOL'] İletişim protokolünün adını ve sürümünü döndürür (örneğin “HTTP/1.0”).
$_SERVER['REQUEST_METHOD'] Sayfa erişiminde kullanılan istem yöntemini döndürür (örneğin POST).
$_SERVER['REQUEST_TIME'] İstek başlangıcındaki zaman damgasını döndürür (örneğin 1577687494).
$_SERVER['QUERY_STRING'] Sorgu dizgisini döndürür, bu sayfa sorgu dizgisi ile erişilirse.
$_SERVER['HTTP_ACCEPT'] Mevcut istekten gelen tüm başlıkları döndürür.
$_SERVER['HTTP_ACCEPT_CHARSET'] Mevcut istekten gelen Accept_Charset başlığını döndürür (örneğin utf-8, ISO-8859-1).
$_SERVER['HTTP_HOST'] Mevcut istekten gelen Host başlığını döndürür.
$_SERVER['HTTP_REFERER'] Mevcut sayfanın tam URL'yi döndürür (güvenilir değil, çünkü tüm kullanıcı aracılar desteklemiyor).
$_SERVER['HTTPS'] Güvenli HTTP protokolü ile betik sorgulama yapıyor mu.
$_SERVER['REMOTE_ADDR'] Mevcut sayfayı görüntüleyen kullanıcının IP adresini döndürür.
$_SERVER['REMOTE_HOST'] Mevcut sayfayı görüntüleyen kullanıcının sunucu adını döndürür.
$_SERVER['REMOTE_PORT'] Kullanıcının Web sunucusuna bağlanmak için kullandığı bağlantı noktasını döndürür.
$_SERVER['SCRIPT_FILENAME'] Mevcut betiği çalıştıranın mutlak yolunu döndürür.
$_SERVER['SERVER_ADMIN'] Bu değer, Apache sunucusu yapılandırma dosyasındaki SERVER_ADMIN parametresini belirtir.
$_SERVER['SERVER_PORT'] Web sunucusu tarafından kullanılan bağlantı noktası. Varsayılan değeri '80'dir.
$_SERVER['SERVER_SIGNATURE'] Sunucu sürümünü ve sanal sunucu adını döndürür.
$_SERVER['PATH_TRANSLATED'] Mevcut betiğin bulunduğu dosya sistemine (belge kök dizini olmayan) temel yol.
$_SERVER['SCRIPT_NAME'] Mevcut betiğin yolunu döndürür.
$_SERVER['SCRIPT_URI'] Mevcut sayfanın URI'sini döndürür.

PHP $_REQUEST

PHP $_REQUEST, HTML formlarının gönderilen verilerini toplamak için kullanılır.

Aşağıdaki örnek, giriş alanları ve gönderme düğmesi içeren bir formu gösterir. Kullanıcı, gönderme düğmesine tıkladığında, form verileri <form> etiketinin action özelliğinde belirlenen betik dosyasına gönderilir. Bu örnekte, form verilerini işleme amacıyla dosya kendisini belirledik. Başka bir PHP dosyasını form verilerini işlemek için kullanmak istiyorsanız, seçtiğiniz dosya adını değiştirin. Sonra, giriş alanlarının değerlerini toplamak için super global değişken $_REQUEST'u kullanabiliriz:

Örnek

<html>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>
<?php 
$name = $_REQUEST['fname']; 
echo $name; 
?>
</body>
</html>

Çalıştırma Örneği

PHP $_POST

PHP $_POST, method="post" olan HTML formlarının sonrasındaki form verilerini toplamak için geniş bir şekilde kullanılır. $_POST, değişkenleri iletmek için de sıkça kullanılır.

Aşağıdaki örnek, giriş alanları ve gönderme düğmesi içeren bir formu gösterir. Kullanıcı, gönderme düğmesine tıkladığında, form verileri <form> etiketinin action özelliğinde belirlenen dosyaya gönderilir. Bu örnekte, form verilerini işleme amacıyla dosya kendisini belirledik. Başka bir PHP sayfasını form verilerini işlemek için kullanmak istiyorsanız, seçtiğiniz dosya adını değiştirin. Sonra, giriş alanlarının değerlerini toplamak için super global değişken $_POST'u kullanabiliriz:

Örnek

<html>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>
<?php 
$name = $_POST['fname'];
echo $name; 
?>
</body>
</html>

Çalıştırma Örneği

PHP $_GET

PHP $_GET HTML formunun (method="get") sonrasındaki form verilerini toplamak için de kullanılabilir.

$_GET URL'deki gönderilen verileri de toplar.

Bir sayfanın parametreli bir bağlantısına sahip olduğunu varsayalım:

<html>
<body>
<a href="test_get.php?subject=PHP&web=codew3c.com">测试 $GET</a>
</body>
</html>

Kullanıcı "test $GET" bağlantısına tıkladığında, "subject" ve "web" parametreleri "test_get.php"'ye gönderilir ve bu parametreleri "test_get.php"'te $_GET üzerinden erişebilirsiniz.

Aşağıdaki örnek "test_get.php" dosyasındaki koddur:

Örnek

<html>
<body>
<?php 
echo "在 " . $_GET['web'] . " 学习 " . $_GET['subject'];
?>
</body>
</html>

Çalıştırma Örneği

İpucu:Sizin PHP Formu Bu bölümden $_POST ve $_GET hakkında daha fazla bilgi öğreneceksiniz.