berkmenoo 1
berkmenoo
mavzermete 1
mavzermete
Mt2Hizmet 1
Mt2Hizmet
xranzei 1
xranzei
Bvural41 1
Bvural41
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Hikaye Ekle

PHP - Küresel Değişkenler

HERAKLES Otomatik Avlı kalıcı sunucu. 19 Haziran'da açılıyor. Atius & Wizard güvencesiyle hemen kayıt ol, ön kayıt ödülleri aktif. HEMEN TIKLA!

maxresdefault.jpg


PHP'de, bir PHP betiğindeki herhangi bir yerden erişilebilen herhangi bir değişkene global değişken denir. Değişken betikteki tüm fonksiyonların veya sınıfların dışında bildirilirse, global değişken olur.

Küresel değişkenlere bir fonksiyonun dışından doğrudan erişilebilir, ancak bir fonksiyonun içinde otomatik olarak erişilebilir değildirler.

Örnek

Aşağıdaki betikte $name, sayhello() fonksiyonu için genel bir değerdir.

PHP:
<?php
   $name = "Amar";
   function sayhello() {
      echo "Hello " . $name;
   }
   sayhello();
?>

Ancak, değişkene fonksiyon içinde erişilemez. Bu nedenle, "Tanımlanmamış değişken $name" hata mesajını alırsınız.

Hello
PHP Warning: Undefined variable $name in /home/cg/root/93427/main.php on line 5


Örnek

Bir fonksiyon içerisinde erişim sağlamak için değişkenden önce "global" anahtar kelimesini kullanmanız gerekir.

PHP:
<?php
   $name = "Amar";
   function sayhello() {
      GLOBAL $name;
      echo "Hello " . $name;
   }
   sayhello();
?>

Aşağıdaki çıktıyı üretecektir:

Bir fonksiyon global bir değişkene erişir ve onu değiştirirse, değiştirilen değer fonksiyon çağrısı tamamlandıktan sonra her yerde kullanılabilir.

sayhello() fonksiyonu içerisinde $name değerini değiştirelim ve fonksiyon çağrıldıktan sonra değerini kontrol edelim.

Örnek

Aşağıdaki örneğe bir göz atın:

PHP:
<?php
   $name = "Amar";
   function sayhello() {
      GLOBAL $name;
      echo "Global variable name: $name" .PHP_EOL;
      $name = "Amarjyot";
      echo "Global variable name changed to: $name" .PHP_EOL;
   }
   sayhello();
   echo "Global variable name after function call: $name" .PHP_EOL;
?>

Aşağıdaki çıktıyı üretecektir:

Global variable name: Amar
Global variable name changed to: Amarjyot
Global variable name after function call: Amarjyot


$GLOBALS Dizisi

PHP , global kapsamda bildirilen tüm değişkenleri ve değerlerini tutan $GLOBALS adlı ilişkisel bir diziyi korur. $GLOBALS dizisi ayrıca, kullanıcı tanımlı global değişkenlerle birlikte süper globaller olarak adlandırılan birçok önceden tanımlanmış değişkeni de depolar.

Küresel değişkenlerden herhangi birine, bir ok öğesine erişimin düzenli sözdiziminin yardımıyla herhangi bir fonksiyon içinde de erişilebilir. Örneğin, küresel değişken $name'in değeri $GLOBALS["name"] tarafından verilir.

Örnek

Aşağıdaki örnekte, addition() fonksiyonu içerisinde $x ve $y adlı iki global değişkene erişilmektedir.

PHP:
<?php
   $x = 10;
   $y = 20;

   function addition() {
      $z = $GLOBALS['x']+$GLOBALS['y'];
      echo "Addition: $z" .PHP_EOL;
   }
   addition();
?>

Aşağıdaki çıktıyı üretecektir:


Örnek

Ayrıca herhangi bir yerel değişkeni $GLOBALS dizisine ekleyerek global kapsama ekleyebilirsiniz. Global kapsama $z ekleyelim.

PHP:
<?php
   $x = 10;
   $y = 20;
   function addition() {
      $z = $GLOBALS['x']+$GLOBALS['y'];
      $GLOBALS['z'] = $z;
   }
   addition();
   echo "Now z is the global variable. Addition: $z" .PHP_EOL;
?>

Aşağıdaki çıktıyı üretecektir:

Now z is the global variable. Addition: 30

Bir PHP Betiğini Başka Bir Betiğe Dahil Etme

Bir PHP betiğini başka bir betiğe dahil edebilirsiniz. Dahil edilen betikte bildirilen değişkenler, dahil edildiği PHP betiğinin global kapsamına eklenir.

İşte "a.php" dosyas:

PHP:
<?php
   include 'b.php';
   function addition() {
      $z = $GLOBALS['x']+$GLOBALS['y'];
      echo "Addition: $z" .PHP_EOL;
   }
   addition();
?>

İçerisinde $x ve $y değişkenleri bulunan "b.php" isimli dosyayı içerir, böylece bunlar "a.php" betiğinin addition() fonksiyonu için global değişkenler haline gelir.

PHP:
<?php
   $x = 10;
   $y = 20;
?>

Global değişkenler genellikle singleton desenleri uygulanırken, gömülü sistemlerdeki kayıtlara erişilirken ve ayrıca bir değişkenin birçok fonksiyon tarafından kullanılması durumunda kullanılır.
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst