Tweet

PHP | Değişkenler ve tipleri

Php bizi değişken tanımlama konusunda büyük bir külfetten kurtarıyor. Php de değişken tanımlamak birçok programlama ve script dilinde olanın aksine belirli bir program bloğunda tanımlanmaz. Değişkenler gerektiğinde içine değer gönderilerek tanımlanır. "İçine değer gönderilerek" cümlesine dikkat ettiyseniz php de değişkenlerin tiplerini de tanımlamaya gerek yoktur. Değişkenler içerisine atılan değerlere göre tip alırlar.[...]

Aşağıda bazı değişken tipleri ve aldığı değerleri inceleyelim.

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.

Şimdi de php de değişkenlerin nasıl tanımlanması gerektiğine;

Php de değişkenler başlarına özel bir karakter "$" getirilerek tanımlanırlar php yorumlayıcısı bu karakteri gördüğünde belleği kontrol ederek o isme sahip değişkenin bellekteki adresinden değerini çağırır. Değişken tanımlarken Türk alfabesinde yer alan fakat İngiliz alfabesinde yer almayan karakterler kullanılamaz. Php'nin diğer bir değişik yanı da sayılarında değişken olarak kullanılabilmesidir. Özel olarak "_" alt çizgi karakterini de değişkenlerin başında kullanılmasına izin veri. Değişken tanımlamayı somut hale getirebilmek için aşağıdaki örnek kodu inceleyelim.

CODE:
<?
$degisken1 = "hakan"; //Doğru

$değişken1 = "okan"; //Yanlış

$123degisken = 123; //Doğru

$123 = 123; //Doğru

$_123 = "neslihan"; //Doğru

$-degisken1=123; //Yanlış

?>


PHP'de özel bir değişkene değişken adı olarak kullanılacak değerleri de atayabiliriz:

CODE:
<?
$adi = "Hakan";
$degisken = "adi";
print $$degisken;
?>


Yukarıda ki kod ekrana hakan kelimesini yazdıracaktır. (print kendinden sonra yazılanları ve ";" e kadar kısmı ekrana yazdırır.)Bu da bize php'nin "" karakteri her gördüğünde belleğe giderek o isimdeki değişkenin değerini çağırdığı gösteriyor. Php $$degisken değişkenini gördüğünde ilk olarak belleği yokluyor ve adı kelimesini buluyor $ karakteri 2 kez kullanıldığı için adı kelimesinin de bir değişken simi olup olmadığını kontrol ediyor ve değişken ise değerini bellekten çağırıyor.

Bu teknik şöyle de kullaılabilir.

CODE:
<?
$degisken = "adi";
$$degisken = "Okan";
print "$adi";
print $$degisken;
print "${$degisken}";
print "${'adi'}";
?>


Yukarıdaki 4 print komutu da okan kelimesini yazacaktır. Php Dinamik olarak değişkenlere veriler atana bilir buda & karakteri kullanılarak yapılır. Dinamik atama nedir? Dinamik atama şöyle tanımlayabiliriz. Örneğin $degisken1'e dinamik olarak $degisken2 yi atadık $degisken2'nin değerini değiştirdiğimizde degisken1 inde değeri değişecektir. Bu olayı daha iyi kavaraya bilmek için aşağıdaki örneği inceleyelim.

CODE:
<?
$degisken2 = "Neslihan";
$degisken1 = &$degisken2;
$degisken2 = "Pınar";
print $degisken1;
?>


Yukarıdaki kod ekrana Pınar yazacaktır. Görüldüğü gibi $degisken2 e Pınar verisi atanmasına rağmen $değişken1 in değeri Pınar olmuştur.

Tipler ve Tip Dönüşümü

Bazen Değişkenimizin tipini değiştirmemiz gerekebilir. C ile uğraşanlar bilir değişkenler arası tip değişimi oldukça külfetli bir iştir. Php bu konuda da imdadımıza yetişiyor. Fakat değişken tipini değiştirmeden önce değişkenimizin tipini nasıl öğreniriz bunu öğrenelim. Bunu php nin gettype(); komutu ile öğreniriz.

CODE:
<?
$sayi = 5;
print("Türü : ");
print gettype( $sayi ) ; //tamsayi/integer
?>


Yukarıdaki kod ekrana &#8220;Türü : integer&#8221; şeklinde bir çıktı verir. Eğer $sayi değişkeninin = den sonraki kısmına &#8220;Türkay&#8221; yazsaydık ekran çıktımız &#8220;Türü: string&#8221; şeklinde olacaktı.

Gelelim tip değişimine tip değişimi için settype() komuttu kullanılır kullanım şeklini aşağıdaki örneği inceleyerek görelim.

CODE:
<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
$degisken = 5.67890;
print("Değişkenin değeri : ");
print "$degisken<br>";
print("Türü : ");
print gettype( $degisken ) ; //çift,ondalık/double
print "<br>";
print "<br>";

print "İlk değiştirme işlemi: Alfanümerik/String:<br>";
settype( $degisken, string ); //alfanümerik/string
print "Değeri : ";
print "$degisken<br>";
print("Türü : ");
print gettype( $degisken ) ; //alfanümerik/string
print "<br>";
print "<br>";

print "İkinci değiştirme işlemi: Tamsayı/Integer:<br>";
settype( $degisken, integer ); //Tamsayı/Integer
print "Değeri : ";
print "$degisken<br>";
print("Türü : ");
print gettype( $degisken ) ; //Tamsayı/Integer
print "<br>";
print "<br>";

print "Üçüncü değiştirme işlemi: Ondalık/Double:<br>";
settype( $degisken, double ); //çift,ondalık/double
print "Değeri : ";
print "$degisken<br>";
print("Türü : ");
print gettype( $degisken ) ; //çift,ondalık/double
print "<br>";
print "<br>";

print "Dördüncü değiştirme işlemi: Mantıksal/Boolean:<br>";
settype( $degisken, boolean ); // Mantıksal/Boolean
print "Değeri : ";
print "$degisken<br>";
print("Türü : ");
print gettype( $degisken ) ; // Mantıksal/Boolean
print "<br>";
print "<br>";
?>
</H2>
</B>
</BODY>
</HTML>


Bu sayfayı çalıştırdığımızda, ilk atadığımız değerin ondalık/double olarak belirlendiğine dikkat edin. Bu değerin türünü alfanümerik/string olarak değiştirdiğimizde değişmediğini görüyoruz. Fakat tamsayı/integer'a çevirdiğimizde PHP değerin tamsayı bölümünü alıyor; ondalık-kesir bölümünü atıyor. Nitekim daha sonra değişkerin türünü yeniden ondalık yaptığımız halde, atılan bu bölüm geri gelmiyor. Son olarak değişkeni mantıksal ifade olarak değiştirdiğimizde, değerin doğru/true olduğunu anlıyoruz; değer olarak bize 1 dönüyor. PHP, sıfır dışındaki tüm değerleri doğru/true'ya çevirir; sıfır'ı ise yanlış/false olarak atar ve boş/null değer verir. Son olarak Php nin alfanumerik bir değişkenin tipini sayısal bir tipe çevirmeye izin vermeyeceğini bilmemiz gerekir.


Dia
okanatabag@gmail.com
16 Nisan 2005 18:32

İlgili Olabilecek Makaleler


Yorumlar (3)





aleyhtar
30 Eylul 2008 00:13
eline saglik dostum.


omegafi
3 Ekim 2010 20:08
Php de tanımlanan değişkenin başında rakam olur mu acaba , yada değişkenin tamamı sayılardan oluşabilir mi ? Sanıyorum bu bilgi yanlış, düzeltmek gerekir.


Dia
2 Kasim 2011 01:31
Aslında tam sayılardan değişken tanımlanabiliyor. Fakat yukarıdaki tanımlama biçimi versiyonların güncellenmesi ile değişmiş durumda tam sayı olarak bir değişken tanımlamak isterseniz şu şekilde tanımlayabilirsiniz.

CODE:
<? ${123}='Tam sayı değişken'; echo ${123};?>



Ziyaretçi olarak yorum yazamazsınız. Üye olmak için tıklayın Üye iseniz giriş yapın.



MENÜ » FORUM
Menü » Takip et
RSS Facebook Twitter Friendfeed
Sık Kullanılanlar Google Yahoo Live
Menü » Paylaş
E-Posta ile gönder Twitter Facebook Friendfeed
Buzz Stumbleupon Delicious Digg