|
5 DERSTE PHP ÖĞRENİN... PHP Öğrenmek Artık Çok
Kolay -4

Değişkenler
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;
$sevdigiRenk;
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;
$sevdigiRenk = "yeşil";
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, size ş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 bilmek durumunda
değildir. (PHP'ye 'muazzam dil' dedik; içinde
yapay zekâ var demedik!) 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 (büyük
bir ihtimalle kendinizde) 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. B 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.
Fonksiyon
PHP'nin gettype() ve print() gibi, kendi içinde
bulunan kullanılmaya hazır bir çok fonksiyonu
vardır. Daha sonra kendi fonksiyonlarımızı
yazmanın yollarını da göreceğiz. Programcılık
dilinde ister dile ait olsun, ister kendimiz
yazmış olalım, bir fonksiyonu kullanmaya
"fonksiyon çağırma" denir. Fonksiyonlar da
fonksiyon çağırabilirler. Çağrılan bir fonksiyon
ya kendisinden beklenen işi yapar, ya da
kendisini çağıran işleme veya fonksiyonu bir
değer sunar. Buna fonksiyondan dönen değer
denir.
Şimdi, bir PHP programı yazalım, bir takım
değişkenlere değerler atayalım ve bunların
türlerini PHP'ye soralım. Bir düzyazı programı
ile şu metni yazın ve turler.php adıyla
kaydedin:
<HTML>
<HEAD>
<TITLE>PHP'de Degisken Turleri</TITLE>
<meta http-equiv="content-type" content="text/html;
charset=ISO-8859-9">
<meta http-equiv="Content-Type" content="text/html;
charset=windows-1254">
</HEAD>
<BODY>
<B>
<H2>
<?php
$sayi = 5;
print("Birinci değişkenin adı: \$sayi<br>");
print("Değeri : ");
print "$sayi<br>";
print("Türü : ");
print gettype( $sayi ) ; //tamsayi/integer
print "<br>";
print "<br>";
$alfanumerik = "Reşit";
print "İkinci değişkenin adı: \$alfanumerik<br>";
print "Değeri : ";
print "$alfanumerik<br>";
print("Türü : ");
print gettype( $alfanumerik ) ; //alfanümerik/string
print "<br>";
print "<br>";
$ondalik = 5.1234;
print "Üçüncü değişkenin adı: \$ondalik<br>";
print "Değeri : ";
print "$ondalik<br>";
print("Türü : ");
print gettype( $ondalik ) ; //çift,ondalık/double
print "<br>";
print "<br>";
$mantiksal = true;
print "Üçüncü değişkenin adı: \$mantiksal<br>";
print "Değeri : ";
print "$mantiksal<br>";
print("Türü : ");
print gettype( $mantiksal ) ; //mantıksal/boolean
print "<br>";
print "<br>";
?>
</H2>
</B>
</BODY>
</HTML>
Bu programı çalıştığımızda karşımıza şöyle bir
görüntünün gelmesi gerekir:
Burada mantıksal (boolean) değer olarak doğru
anlamına true değeri atadığımız halde, PHP'nin
bu değişkenin değeri olarak 1'i gösterdiğine
dikkat edin. PHP'de bir fonksiyon, elde ettiği
değer doğru ise sonuç olarak 1 değerini verir.
(Yanlış/false değerinin neye çevrildiğini
bulabilir misiniz?

|