Kategoriler
PHP

PHP’de Değişken ve Sabit

Bir programlama dilinde olmazsa olmaz yapıların başında değişkenler gelir. Her programlama dilinde olduğu gibi PHP’nin de kendine özgü değişken ve sabit tanımlama şekli vardır. Bu yazıda PHP de bir değişken ve sabit tanımlaması nasıl yapılır, nelere dikkat edilmelidir gibi konuları işleyeceğim. Başlamadan önce programlama dillerinde değişken ve sabitlerin çalışma şekilleri gibi konuların daha detaylı olarak açıkladığım Programlama’da Değişken ve Sabit isimli yazımı okuyabilirsiniz.

Değişken

  1. Değişkenler daima “$” işareti ile başlar.
  2. Değişken isimleri mutlaka bir harf ya da alt çizgi “_” ile başlamalıdır.
  3. Değişken isimleri bir rakam ile başlayamaz ancak orta ya da sonunda kullanılabilir.
  4. Değişken ismi sadece alfanumerik (A-Z ve a-z ve 0-9) karakterleri ve alt çizgi “_” karakterini içerebilir.
  5. Değişken ismi içerisinde boşluk yada Türkçe karakterler veya özel karakterler kullanılamaz.
  6. Değişken isimlerinde PHP tarafından kullanılan anahtar kelimeler (new, class, else gibi) kullanmayınız. Programın çalışmasına mani olmaz ancak bir karmaşaya sebep olacaktır.
  7. Değişken isimleri büyük-küçük harf duyarlıdır.
$degisken_adi1 = "Değişken Değeri";
$PIsayisi = 3.14;

Bununla birlikte PHP programlama dilinde değişkenler kapsama (etki alanı) kurallarına tabidir. PHP dosyasında her hangi bir fonksiyon ya da sınıf içerisinde bulunmayan bölgeye Global, fonksiyon ve sınıf kod blokları içerisinde bulunan bölgeye Local denir. Bir fonksiyon ya da sınıf içerisinde dışarıdaki değişkenlerden farklı şekilde tanımlanır.

$x = 5; //Global alanda x değişkeni

function benim_fonksiyonum()
{
    $x = 10; //Local alanda x değişkeni
    echo $x;
}

benim_fonksiyonum(); #Output: 10

echo $x; #Output: 5

Değişkenlere dizge olan bir değer atanacaksa tek veya tek tırnak (", ') arasında kullanılır. Başlangıçta hangisi kullanıldıysa sonda da o kullanılmalıdır. Dizge içerisinde de aynı tırnak işareti kullanılacaksa kaçınma operatörü olan “\” ile birlikte kullanılmalıdır.

$ornek1 = "Bugün hava çok güzel";
$ornek2 = 'Bugün hava çok güzel';
$ornek3 = "Bugün hava \"çok\" güzel";
$ornek4 = 'Yarın\'da hava güzel olacakmış';

Değişken İçerisinde Değişken Tanımlama

Bir değişken içerisindeki veriyi başka bir değişken içerisine tanımlamak da mümkündür.

$x = 15;
$y = $x; //y değişkenine, x değişkeninin değerini ata.
$x++; //x değerini 1 arttır.
echo $x; #Output: 16
echo $y; #Output: 15

Değişkenlerde Referansa Bağlı Değer Atama

Bir değişken içeriğini başka bir değişkene tanımladıktan sonra ilk değişkenin değeri değiştirilirse, ikinci değişken ilk değişkenin eski değerini tutmaya devam eder.

Ancak istersek ilk değişkenin değeri değiştiğinde ikinci değişkeninde değerinin güncellenmesi otomatik olarak sağlanabilir.

$x = 15;
$y = &$x; //y değişkenine, x değişkeninin referansını ata.
$x++; //x değerini 1 arttır.
echo $x; #Output: 16
echo $y; #Output: 16

Değişken Değişkenler Tanımlama

Bazı durumlarda değişken bir isme sahip değişkenler kullanmak kullanışlı olabilir. Genelde kullanılmaz ancak bazı durumlarda kullanmak gerekebiliyor. Bu durum başlangıçta kafa karıştırıcı bir gelebilir ancak mantığı kavradığınızda o kadar karmaşık bir şey olmadığını görecekseniz.

Normal bir değişken şöyle atanır;

$a = "merhaba";

Bir değişken değişken bir değişkenin değerini alır ve bir değişkenin ismi gibi davranır. Yukarıdaki örnekte, merhaba, iki tane dolar işareti ile bir değişken ismi olarak kullanılabilir.

$$a = "dünya";

Bu noktada PHP sembol ağacında iki değişken tanımlanmış ve saklanmış olur: $amerhaba” içerirken $merhaba ise “dünya” içerir. Bu nedenle, aşağıdaki iki örnek aynı sonucu üretir.

echo $a; #Output: merhaba
echo $$a; #Output: dünya
echo $merhaba; #Output: dünya

Fark ettiyseniz $merhaba diye bir değişken tanımlamadığım halde bu şekilde kullanabiliyorum.


Sabitler

Sabit ya da sabit değişken programın her hangi bir yerinde tanımlayan ve program sonuna kadar değiştirilemeyen yapılardır.

Değişken ile sabit arasındaki fark değişkenlerin program içerisinde her hangi bir yerde değiştirilebilir, sabitlerin ise bir kez tanımlandıktan sonra değiştirilemez olmasıdır.

  1. Sabitler ve içerikleri define() fonksiyonu ya da const terimi ile tanımlanır.
  2. Sabit isimleri harf ya da alt çizgi “_” ile başlamalıdır.
  3. Sabit isimleri rakam ile başlayamaz.
  4. Sabit isimleri içerisinde alfanumerik karakterler yer alabilir.
  5. Sabit isimleri boşluk, Türkçe ya da özel karakterler içeremez.
  6. Sabit isimleri kullanılırken PHP tarafından kullanılan class, new ve function gibi anahtar kelimeleri kullanılamaz.
  7. Sabit isimleri büyük-küçük harf duyarlıdır ancak istenirse duyarsız hale getirilebilir.
  8. Sabit isimleri birden fazla kez kullanılamaz.
  9. Sabitlere atanacak değerler değiştirilemez ya da tanımsız duruma getirilemez.
  10. Sabitler kapsama ya da etki alanı kurallarına bağlı değildir.
define("PI", 3.14);

define() fonksiyonu iki parametre alır ve ilk parametre de sabitin adı tanımlanır, ikinci parametrede ise değeri tanımlanır.

const PI = 3.14;

const ile tanımlama şekli de yukarıdaki gibi oluyor.

Ekrana yazdırmak ya da kullanmak için “PI” şeklinde erişim sağlayabilirsiniz.

echo PI;

const ve define() Farkı

const ifade ile define() fonksiyonu aynı işi yapıyor olsa da çalışma sırası aynı değildir. Bir PHP programı çalıştırılırken const ifade ile tanımlanan sabitler derleme zamanında, define() fonksiyonu ile tanımlanan sabitler ise çalışma zamanında oluşturulur.

Bu yüzden define() fonksiyonu ile bir koşul blogu ya da fonksiyon içerisinde sabit tanımlamak hatta bir değişkeni sabite atamak mümkündür. const ifadesi ile tanımlama yaparken bunların hiçbiri mümkün değildir.

Yazar Muhammet ŞAFAK

1992 İstanbul doğumluyum. 2008 yılından beri profesyonel olarak PHP geliştiriyorum. Her ne kadar ağırlıklı olarak PHP üzerinde çalışsam da C, C++, Python, Java programlama dillerini de kullanıyorum.

Bir Cevap Yazın