Degisken tanimlamak
ve onu baslatmak
PHP'de (=) esittir operatoru bir degiskene deger atamak icin,
(==) iki tane yan yana esit isareti ise "esitligi" sinamak
icin kullanilir.
Ornek :
$satir_sayisi = 10;
$urun = "Araba Lastigi";
$fiyat = 22.00;
$nakliye = 5.00;
$toplam = $fiyat + $nakliye;
Yukarida gorulen orneklerde sol tarafta "dolar" isareti ile
verilen degisken,ortada bir esit isareti ve en sagda o degiskenin
degeri gorulmektedir.Noktali virgul isareti (;)satirin bittigini
belirtmek icin kullanilmalidir.
Degisken'in veri tipi:
PHP'de, diger programlama dillerinde oldugu gibi degiskenin
icinde saklayacagi veri tipini onceden belirlemenize gerek
yoktur.Degiskenin sakladigi degerden, verinin tipi otomatik
olarak algilanir.Bu algilama degere bakilarak yapilir.
Ornek:
$a = 1; //$a tam sayi (integer) tipinde bir veri saklamaktadir.
$a = 1.2; //$a ondalik sayi (double) tipinde bir veri saklamaktadir.
$a = "A"; //$a duz yazi (string) tipinde bir veri saklamaktadir.
Simdi verilen ornekleri biraz daha cogaltalim ve sonuclari
degerlendirelim :
$a = 1; //$a tam sayi (integer) tipinde bir veri saklamaktadir.
$b = 1.0; //$b ondalik sayi (double) tipinde bir veri saklamaktadir.
$c = $a + $b; //$c Bir ondalik sayi degeri saklamaktadir.(Deger:2.0)
$d = $c + "6th"; //$d bir ondalik sayi saklamaktadir.(Deger:8.0)
Simdi de donusumlere bakalim :
$a = 11.2; //$a bir ondalik sayi (double) saklamaktadir.
$a = (int) $a; //$a artik bir tam sayi degeri saklamaktadir.(Deger:11)
$a = (double) $a; //$a tekrar ondalik veri tipinde veri saklamaktadir.(Deger:11.0)
$b = (string) $a; //$b simdi bir duz yazi tipinde veri saklamaktradir.(Deger:"11")
Degisken Degiskenler :
PHP'de degisken degiskenleri kullanmaniza izin verilmistir
:
Ornek:
$alan = "UrunNo";
$$alan = "432BB";
echo ($UrunNo); //Bu komut ekrana 432BB yazdirir.
echo ($$alan); // Bu komut ekrana 432BB yazdirir.
gettype () hazir fonksiyonu ile degiskenin veri tipini
dondurmek:
Bu hazir ile fonksiyon'a argument olarak verilen degiskenin
veri tipi dondurulur.Asagida fonksiyonun dondureebilecegi
degerlerin bir listesi yer almaktadir :
"integer"
"double"
"string"
"array"
"object"
"class"
"unknown type"
integer : tam sayi
double : iki kisimdan olusan (tam ve ondalik olarak) sayi
string : duz yazi
array : dizi
object : nesne
class : sinif
unknown type : bilinmeyen tip
Ornek :
if (gettype($degisken) == "integer") {
$yas = $degisken;
}
Ilgili fonksiyonlar : isset () ve settype ()
settype () fonksiyonunu kullanarak degisken icin belirli
bir veri tipini tayin etmek
Ornek :
$a = 7.5; //$a bir ondalik sayidir dolayisi ile veri tipi
"double" dir.
settype ($a, "integer"); //$a simdi bir integer ve degeri
7
Eger donusum basarili olursa yapisal bir sonuc degeri olan
"true" yani dogru, basarisizlik halinde "false" yani yanlis
degeri doner.
Ornek :
if (settype ($a, "array")) {
echo ("Donusum basarili sekilde gerceklesti");
} else {
echo ("Donusum islemi basarisiz.");
}
isset () ve unset () kullanilmasi :
unset () fonksiyonu degiskeni yok etmek icin kullanilir.Boylece
onun icin ayrilmis hafiza alani temizlenerek, degisken ve
degeri ortadan kaldirilir.
isset () fonksiyonu ise degiskenin bir degere sahip olup
olmadigini kontrol icin kullanilir.Eger degisken bir degere
sahip ise "true" degeri doner.
Ornek:
$UrunNo = "432BB";
if (isset($urunNo)) {
echo ("Bu yazi ekrana mutlak sekilde yazdirilacak.");
}
empty () fonksiyonun kullanilmasi
empty () fonksiyonu iseet () fonksiyonu ile tam zit bir
islev gorur.Eger degiskenin herhangi bir degeri yoksa,degeri
sifira esitse veya bos bir string veri iceriyorsa,fonksiyondan
"true" yani dogru degeri doner.Diger butun hallerde "false"
yani yanlis yapisal degeri doner.
Ornek :
echo empty ($yenidegisken); //true
Degiskenin herhangi bir degeri olmadigi icin empty ()
fonksyionu "true" degerini dondurdu.Simdi degiskene bir
deger verelim ve tekrar calistirilaim:
$yenidegisken = 1;
echo empty ($yenidegisken); //false
Simdi ekrana false yazdi cunku degisken bir degere sahip
ve bu deger ne sifir ne bos bir string...
$yenidegisken = "";
echo empty ($yenidegisken); //true
$yenidegisken = 0;
echo empty ($yenidegisken); //true
$yenidegisken = "Istanbulda olmak vardi anasini satayim...";
echo empty ($yenidegisken); //false
unset ($yenidegisken);
echo empty ($yenidegisken); //true
is...() Fonksiyonlari
is_int (), is_integer (), ve is_long () fonksiyonlari
hepsi birbirinin hemen hemen ayni olan,bizim degiskenin
"integer" yani tamsayi olup olmadigini anlamamiza yarayan
fonksiyonlardir.
is_double (), is_float (), is_real fonksiyonlari hepsi
birbirinin hemen hemen ayni olan,bizim degiskenin "double"
yani ondalik sayi olup olmadigini anlamamiza yarayan fonksiyonlardir.
is_string (), is_array () ve is_object () ise kendi adlariyla
anilan degisken veri tipleri icin bizim ornegin bir degiskenin
string,array veya object olup olmadigini anlamamizi saglarlar.
Ornek :
$UrunNo = "432BB";
if (is_string ($UrunNo)) {
echo ("String");
}
...val () Fonksiyonlari
intval (), doubleval () ve strval () fonksiyonlari ile
degiskenin sahip oldugu veri tipi degistirlebilir.Bu fonksiyonlar
yardimiyla bir degiskenin "dizi" veya "nesneye" donusturulmasi
saglanamaz.
Ornek :
$UrunNo = "432BB";
$i = intval ($UrunNo); //$i = 432 olur.
intval () fonksiyonu secenege bagli olarak bir ikinci
argument olarak sayi duzeni sistemininin secilmesini alabilir.Ornegin
degiskenin sahip oldugu degeri 16 lik sayi duzenine cevirmek
istersek :
$UrunNo = "432BB";
$i = intval ($UrunNo,16); //$i = (decimal) 275131 olur.
Bazi kisa yollar ile degisken islemlerinin yapilmasi
ve kodun okunabilirliginde artis saglanmasi
$h += $i; Bu suna esittir : $h = $h + $i;
$h -= $i; Bu suna esittir : $h = $h - $i;
$h *= $i; Bu suna esittir : $h = $h * $i;
$h /= $i; Bu suna esittir : $h = $h / $i;
$h %= $i; Bu suna esittir : $h = $h % $i;
$h &= $i; Bu suna esittir : $h = $h & $i;
$h |= $i; Bu suna esittir : $h = $h | $i;
$h ^= $i; Bu suna esittir : $h = $h ^ $i;
$h .= $i; Bu suna esittir : $h = $h . $i;
$h >>= 2; Bu suna esittir : $h = $h >> 2;
$h <<= 2; Bu suna esittir : $h = $h << 2;
$h ++; Bu suna esittir : $h = $h + 1;
$h --; Bu suna esittir : $h = $h - 1;
Bazi ilginc noktalar
Simdi asagidaki ornege bakiniz:
$a = 10; //$a 10'a esit.
$a ++; //Simdi $a 11'e esit.
$a=10; //$a 10'a esit.
++$a; //$a 11'e esit.
//Fakat :
$a = 10; //$a 10'a esit
$b = $a++; //$a 11'e esit ve $b 10'a esit.Cunku atama
isleminden sonra bir arttirma olayi var.
$a = 10; //$a 10'a esit
$b = ++$a; //$a 11'e esit ve $b 11'e esit.Cunku atama
isleminden once bir arttirma olayi var.
Serkan Hadi Ceylani
serkan@turk-php.com
|