Arama Md5 Oluşturcu Ip Sorgulama Proxy Servisi Admin Login
PHP de Veri Tür Değiştirme .: PHP, Depo, Mysql, Example Code, Script, Dersleri, Ders, Örnek Kodlar, Programlar, Bot, Çalışmalar, Projeler, Destek, Yardım, Makale, Veritabanı
Arama  
   
Anasayfa .: PHP Dersleri .: PHP de Veri Tür Değiştirme

PHP de Veri 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.  

 

Ş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>
 

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?) 

 

Kimi zaman bir değişkene atadığımız değerin türünü değiştirmek gerekir. Bunu settype() fonksiyonu ile yaparız. Elimizde böyle bir imkan var diye, bir değişkenin alfanümerik (String) olan değerini sayıya çevirebileceğini sanmayın. PHP buna çok kızar! Şu örneği de tur_degistir.php adıyla kaydedelim:

 

 
<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 programı ç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.

 

Şu anda PHP'yi tam bilemediğimiz için nerede kullanılır kestiremiyoruz, ama diyelim ki burada olduğu gibi, değişkeni bir daha düzelmeyecek şekilde değişikliğe uğratmak istemeyebiliriz; fakat yine de değerinin türünü değiştirmek isteyebiliriz. Bunu da nerede kullanabiliriz, şu anda bilmiyoruz. Ama diyelim ki, böyle bir işlem yapmaya ihtiyacımız oldu! Hatırlıyor musunuz, biraz önce özel bir şekilde bir değişkene başka bir değişkenin adını değer olarak vererek, aslında bu değişkenin ilk değişkenin değerini almasını sağlamıştık. Burada da aynı tekniği kullanabiliriz. Bu kodu da tur_kopyala.php adıyla kaydedin:

 

 
<HTML>
<HEAD>
<TITLE>PHP'de Degisken Turleri Kopyalama (Casting)</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  = 3.1418;
            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 kopyalama işlemi: Alfanümerik/String:<br>";
            $kopya_degisken =  ( string ) $degisken; //alfanümerik/string
            print "Değeri : ";
            print "$kopya_degisken<br>";
            print("Türü : ");
            print gettype( $kopya_degisken ) ; //alfanümerik/string
            print "<br>";
            print "<br>";
 
            print "İkinci kopyalama işlemi: Tamsayı/Integer:<br>";
            $kopya_degisken =  ( integer ) $degisken; //Tamsayı/Integer
            print "Değeri : ";
            print "$kopya_degisken<br>";
            print("Türü : ");
            print gettype( $kopya_degisken ) ; //Tamsayı/Integer
            print "<br>";
            print "<br>";
 
            print "Üçüncü değiştirme işlemi: Ondalık/Double:<br>";
            $kopya_degisken =  ( double ) $degisken; //çift,ondalık/double
            print "Değeri : ";
            print "$kopya_degisken<br>";
            print("Türü : ");
            print gettype( $kopya_degisken ) ; //çift,ondalık/double
            print "<br>";
            print "<br>";
 
            print "Dördüncü kopyalama işlemi: Mantıksal/Boolean:<br>";
            $kopya_degisken =  ( boolean ) $degisken; // Mantıksal/Boolean
            print "Değeri : ";
            print "$kopya_degisken<br>";
            print("Türü : ");
            print gettype( $kopya_degisken ) ; // Mantıksal/Boolean
            print "<br>";
            print "<br>";
?>
</H2>
</B>
</BODY>
</HTML>
 

Bu programın can alıcı noktası örneğin "$kopya_degisken =  ( boolean ) $degisken;" şeklindeki komut; burada $kopya_degisken adlı değişkene $degisken adlı değişkenin değerini (eşittir işareti ile) kazandırırken, arada yeni değişkenin kazanmasını istediğimiz türün adını parantez içinde yazıyoruz. Burada gerçekte, $degisken adlı değişkenin değerine hiç bir şey olmuyor. Bu programı çalıştırırsanız, ilk değerin ontalık kısmının önceki örnekte olduğu gibi değişim işlemi sonunda tamamen yok olmadığını görebilirsiniz.

 

$degisken adlı değişkenin değeri değişmeden durduğu için üçüncü adımda yıptığımız ondalık tür olarak kopyalama sonucu yeni değişkenin değeri yine kesiri ile karşımıza çıkıyor.



Bu yazı sana nasıl yardımcı oldu?

İlgili Yazılar

article PHP de Veri Türleri
PHP, değişkenlere, tuttukları değere göre...

(No rating)  5-6-2008    Views: 191   
article MySQL veri türleri
MySQL'de bir çok veri türü oluşturulabilir....

(No rating)  5-6-2008    Views: 229   

Yorumlar

Yorum Gönderilmemiş.