Programcılıkta işlemlerimizi değişkenlerle
yaparız. Değişkeni bir kap gibi düşünebilirsiniz. Sözgelimi "Gün," değişkenin
adı ise bu değişkenin değeri Pazar, Pazartesi, Salı, vd., olabilir. Her
değişken, türüne göre, ya bir ya da daha fazla değer tutar. Adından da
anlaşılacağı gibi değişkenin değeri değişir. Bu değişikliği biz yapabiliriz;
programın kendisi yapabilir.
PHP'de de, bir çok başka bilgisayar programlama
dilinde olduğu gibi değişkenlerin içine bir değer konmadan önce tanımlanması
mümkündür; fakat gerekli değildir. Değişkenleri adının önüne $ işareti koyarak
tanımlarız:
$adi;
$soyadi;
$123;
Değişkenler, harf, rakam veya alt çizgi (_) ile
başlayabilirler; bu karakterleri içerebilirler; ama içinde boşluk veya diğer
işaretler bulunamaz. PHP değişkenleri her türlü değişken tutabilirler: bir
değişkenin adının yazılış şekli onun tutabileceği değerin niteliğini belirlemez.
Dolayısıyla, "$adi" değişkenin değeri "Reşit" da olabilir, "1255" de olabilir.
PHP'de genellikle değişkenleri değerini atayarak
belirleriz:
$adi = "Reşit";
$soyadi = "Gülen";
$123 = 123;
Değişkenler, kullanıldıkları işleme, taşıdıkları
değeri verirler:
print $adi;
komutu, eğer değeri "Reşit" ise "Browser
penceresine "Reşit" kelimesini yazdırır.
PHP'de özel bir değişkene değişken adı olarak
kullanılacak değerleri de atayabiliriz:
$adi = "Reşit";
$degisken = "adi";
print $$degisken;
Burada Browser penceresine yine "Reşit" kelimesi
yazılacaktır; çünkü PHP $degisken adlı değişkenin "adi" adlı değişkeni tuttuğunu
bilecek ve iki Dolar işaretini görünce, $degisken'in değerini değil, onun
tuttuğu değişkenin değerini yazacaktır. Bu, şu anda karışık görünebilir. Daha
sonra döngüleri gördüğümüzde bu tekniği bir satırlık kod ile yüzlerce değeri
yazdırmakta kullanacağız. Bu teknik şöyle de kullanılabilir:
$degisken = "adi";
$$degisken = "Reşit";
print "$adi";
print $$degisken;
print "${$degisken}";
print "${'adi'}";
Buradaki dört "print" komutu da Browser'a "Reşit"
kelimesini yazdıracaktır.
PHP'de bir değişkenin tuttuğu değer, bir başka
değişkene atanabilir. Bu ya duragan, ya da dinamik olarak yapılır. Duragan
yöntemde:
$birinci_degisken = "Nurcan";
$ikinci_degisken = $birinci_degisken;
$birinci_degisken = "Tülay";
print $ikinci_degisken;
Buradaki "print" komutu Browser penceresine
"Reşit" kelimesini yazdıracaktır. İki değişken arasındaki değer alış-verişi
birinci değişkenin tuttuğu değeri değiştirmeden önce olduğu için, ikinci
değişken birinci değişkenin ilk değerini almış oldu. Fakat kimi zaman iki
değişken arasındaki değer alış-verişi sürekli (dinamik) olsun isteriz. PHP,
buna, ilk atama sırasında & işareti kullanırsak izin verir:
$birinci_degisken = "Nurcan";
$ikinci_degisken = &$birinci_degisken;
$birinci_degisken = "Tülay";
print $ikinci_degisken;
Buradaki "print" komutu ise Browser penceresine
"Tülay" kelimesini yazdıracaktır. Çünkü iki değişken arasındaki değer
alış-verişi birinci değişkenin tuttuğu değeri değiştirmeden önce halde, ikinci
değişkene birinci değişkenin değerini dinamik olarak atamış olduk. Atama işlemi
sırasında & işareti kullandığımız için, birinci değişkenin değeri değiştiğinde
ikinci değişkenin de değeri değişecektir.
Veri Türleri
PHP, değişkenlere, tuttukları değere göre farklı
bellek alanı tahsis eder; bu bakımdan verilerimizin türü etkin bir programcılık
açısından önem taşır. Ayrıca PHP, diğer bütün programlama dilleri gibi belirli
veri türleri ile belirli işlemleri yapar veya yapamaz. Örneğin, ancak iki sayı
arasında aritmedik toplama yapılabilir. İki metin tutan değişken aritmetik
olarak toplanamaz; ancak içerdikleri değerler ardarda eklenebilir. Ne var ki,
PHP sizin aritmetik toplama mı, yoksa ardarda ekleme mi yapmak istediğinizi
elbete bilemez. Dolayısyla değerleri 5 ile 6 olan iki değişkeni topladığınız
zaman ortaya 11 yerine 56 çıkarsa, kabahati PHP'de değil, değişkenlere veri
atayan kişide aramalısınız.
PHP açısından dünyada altı tür değer vardır:
- Tamsayı (Integer): 5,124, 9834 gibi
- Çift (Double): 3,567 gibi
- Alfanümerik (String): "Reşit" gibi
- Mantıksal (Boolean): doğru (true)/yanlış (false) gibi
- Nesne (Object)
- Dizi (Array)
Bazı uzmanlara göre, gerçekte PHP'de mantıksal
(boolean) değişken türü yoktur. Bu kanının sebebi, PHP'nin true (doğru) ya da
false (yanlış) olarak atadığımız değerleri 1 ve boş/null değerlere çevirmesi,
mantıksal olarak sorgulandığında 0 dışındaki tam ve ondalık değişkenleri TRUE,
0'ı FALSE sayması, ve boş alfanümerik değişkenleri FALSE, dolu alfanümerik
değişkenleri ise TRUE olarak değerlendirmesidir. Ancak daha sonra gereceğimiz
gibi PHP, Mantıksal/Boolean adında bir değişken değiştirme fonksiyonuna sahiptir
ve bu tür değişkenlerin türü sorulduğunda "boolean" karşılığını verir.
Tür Değiştirme
Değişkenlere atadığımız değerlerinin türlerini
genellikle biliriz; ama yüzlerce değişkenle uğraştığımız bir Web programında
değişken türünü unutmak çok kolaydır. Kimi zaman da değişkenlere program yoluyla
değer atarız; başka bir deyişle programımız bazı değişkenleri kendisi
oluşturabilir, ve bunlara kendisi değer atayabilir. Bu tür program yoluyla
atanan değerlerin de türünde kuşkuya kapıldığımız anlar olabilir. Bir değişkenin
değerinin türü hakkında kuşkunuz varsa, en emin yol bunu PHP'nin kendisine
sormaktır. Bu sorgulamayı gettype() fonksiyonu ile yaparız.