Php Escape

Escape

turler.php dosyasını yazdıysanız, şu satırdaki, ters-bölü işareti dikkatinizden kaçmamış olmalı:

            print "İkinci değişkenin adı: $alfanumerik<br>";

Daha önce gördük ki, tek veya çift tırnak içine de alsak, PHP, bir değişken adını gördüğü zaman onun yerine o değişkenin tuttuğu değeri yazar. PHP bunu, değişken adının başındaki $ görerek yaparak. $ işareti gibi PHP için özel anlamı olan işaretlerin anlamlandırılmasını önlemek ve bu işaretleri düz metin saymasını sağlamak için bu işaretlerin önüne ters-bölü işareti koyarız. Buna o karakteri kurtarma veya ESCaping denir. PHP'nin anlamlı işaretleri ve bunların ESCape-yazılışı şöyledir:

'                      Tek tırnak

"                      Çift tırnak

                      Ters-bölü

$                     Dolar işareti

n                     Yeni Satır (New Line)

r                      Satır Başı (Return)

t                      Sekme (Tab) karakteri


 

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.

<php00010.tif>

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

<php00011.tif>

$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 web sitesi ücretsiz olarak Bedava-Sitem.com ile oluşturulmuştur. Siz de kendi web sitenizi kurmak ister misiniz?
Ücretsiz kaydol