noisiv 1
noisiv
Manwe Work 1
Manwe Work
Sevdamsın 1
Sevdamsın
Bodyguardd 1
Bodyguardd
kralhakan2009 1
kralhakan2009
Vahsi Uzman 1
Vahsi Uzman
lHezarfeNl 1
lHezarfeNl
Bvural41 1
Bvural41
Reklam vermek için turkmmo@gmail.com

PHP - Küresel Değişkenler

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