- Katılım
- 7 Ağu 2012
- Mesajlar
- 10
Foruma yeni üye oldum, kendimce bildiklerimi paylaşayım dedim, temel konulardan başlayıp vakit buldukça ilerlemeyi düşünüyorum. Hatalı kısımlarıda diğer arkadaşlar düzeltir bu sayede ben de bildiklerimi geliştiririm dedim.
Dediğim gibi değişkenlerden başlayıp oop,tasarım desenleri gibi konulara kadar gitmeyi planlıyorum.
Bu yazımda değişkenler,değişken tipleri, tip dönüşümü konusuna hızlı bir giriş yapıp ardından string tipini inceleyip(değişken parse etmek, heredoc, nowdoc falan) bugünü bitirmeyi düşünüyorum.
Değişkenler: Değişkenlerin ne olduğuna aşina değilseniz şöyle özetleyebiliriz: Herhangi bir değeri tutmamıza(daha doğrusu ona istediğimiz an ulaşmamıza) yarayan isimlerdir dersek sanırım çok da yanlış olmaz. Değişkenlerde bir değeri tutarız ve daha sonra o değer lazım olduğu zaman ona erişiriz. Php de değişkeni tanımlamak için $ sembolünü kullanırız.
bundan sonra uygulamada bu değişkenin geçerli olduğu alanda(ilerde göreceğiz: "variable scope") ne zaman $degisken i kullanırsak dersek "Panda" değerine ulaşmış oluruz. Adının değişken olmasından ötürü istediğimiz zaman değerini değiştirebildiğimiz anlaşılmıştır 
Değişken Tipleri: PHP de değişken tipini değişkeni tanımlarken belirtmemiz gerekmez fakat ilerleyen zamanlarda birçok yerde çalıştığımız değişkenin tipini bilmemiz gerekir.
4 Tane temel değişken tipimiz(manualde buna scalar demiş)
-integer(Tam sayıları)
-float(Ondalıklı sayıları)
-string(Karakterleri)
-boolean(TRUE yada FALSE)
2 tane bileşik tipler(bir yada daha fazla değişkenden meydana geldiği için)
-array
-object
vardır.
(Bunların dışında resource,null gibi özel tipler ve de mixed gibi sözde tipler vardır ama onlara bu konuda girmeceyeğiz).
İlk kez bunları gören birine biraz karışık gelebilir ama bu kısım sadece özet kısmı o nedenle fazla birşey anlatmadığı için karışık.
Dönüşümler: Daha öncede dediğim gibi PHP'de değişkeni $ işareti ile tanımladıktan sonra türünü belirmemize gerek yoktur, aldığı değere göre otomatik olarak belirler. Yani:
PHP operatörlerde otomatik olarak tür değişimi uygular yani 1(integer) ile 3pandayı(string) toplarsak otomatik olarak 3pandayı integere dönüştürecek(3 olacak değeri) sonra toplayacaktır ve sonuç olarak bize 4 verecektir. Bunun detaylarına ilerde değineceğiz.
İstersek çeşitli yöntemle tip dönüşümü yaparız
Tip dönüşümleri ile ilgili herşeyi, tüm tipleri inceledikten sonra detaylı olarak yazacağım. Sadece fikir olsun diye yazdır bu kısmı.
String: Daha öncede yazdığım gibi string değişken tipi, karakter setleri(yazılar vs.) tutar diyebiliriz. örneğin "Panda" bir karakterler bütünü dersek bunu string tipinde olduğunu söyleyebiliriz. String tipinde bir değişkeni tanımlamak için kullandığımız 4 farklı yöntem vardır.
1-Tek Tırnak('): Bu yöntem ile iki tane tek tırnak arasına değişkenimizin değerini yazarız. Örneğin:
şeklinde tanımlarız.
Bu şekilde tanımlanan stringlerin özelliği, değişkenler parse edilmez yani
yaparsak ekrana $baskaDegisken in değerini(yani 6) değil direk $baskaDegisken olarak yazacaktır. Alt kısımda parsing konusuna detaylı gireceğim.
Bu yöntemin ikinci bir olayı ise sadece ' ve \ i escape etmemiz yeterlidir.
parse: string içinde değişken adını yazdığımız zaman değişken adının yerine değerini koyması diyebiliriz. Yani $baskaDeğişken yazan yerlere onun yerine değeri olan 6 yazdırmak diyebiliriz. Tek tırnakta parse edemez.
escape: PHP manualde Türkçe olarak öncelemek gibi birşey demiş ama ben escape kelimesini kullanıyorum. Bazen bazı karakterleri asıl görevlerinden uzaklaştırmak gerekir mesela tek tırnak işareti bir stringi başlatıp bitirdiğimiz yerlerde kullanıyoruz, peki o yazı içinde tek tırnak gerekirse yani:
Yukarıdaki kod hata verir çünkü PHP hangi tırnağın yazıya ait, hangi tırnağın stringin bittiği noktayı belirttiğini bilemeyeceği için "Panda" yazısının yanındaki tırnağı string açma-kapatma tırnağı zanneder ve stringi orada bitirir. Bu yüzden işlevinden uzaklaştırmak gerekir. bunun için arkasına bir \ işareti koyarız. Bu sayede artık işlevini kaybeder ve PHP onun stringin bitiş noktası değilde yazının bir parçası olduğunu anlar. Bu işleme escape denir. Şimdi yukarda sadece ' ve \ i escape etmemiz gerekir demişiz. Çünkü tek tırnak ile oluşturulan bir stringde sadece ' ve \ işaretinin özel bir işlevi-anlamı vardır.
2-Nowdoc: Eğer string içinde bize çok sayıda ' gerekli ise her seferinde escape etmek yerine stringi ' ile değil de kendimize özgü bir başlangıç ve bitiş belirteciyle tanımlama isteyebiliriz. Bu sayede PHP tırnakla karşılaşınca bir önem vermez, çünkü artık stringimizin başladığı ve bittiği noktayı tırnak ile değil kendimize özgü bir belitreçle belirledik. Bu yapmak için nowdoc bize yetişir, <<< ardından kendimize özgü tırnak yerine kullanılacak belirteç koyarız(iki tane tek tırnak içinde), alt satıra geçer stringimizi yazar bittiği yerden alt satıra geçer ve özgü belirtecimizle kapatırız.
3-Çift Tırnak("): Çift tırnak ile string tanımladığımız zaman değişkenler parse edilir. Ve bazı özel karakterlere(\n,\r gibi) duyarlıdır ve onlarında escape edilmesi gerekebilir.
parse: string içinde değişken adını yazdığımız zaman değişken adının yerine değerini koyması diyebiliriz.
ekrana "Bu bir string" yazdırır. Peki ya değişkeni yazdırmak istersek mesela, userName diye bir değişkenimiz var, değer olarak kullanıcı adını tutuyor ve biz o kullanıcı adını ekrana yazdırma istiyoruz, Bunun içinde yazdırılacak stringin userName değişkenini parse etmesi gerekiyor. 2 farklı yol izleyebiliriz.
1. Yol:
bu yola basit yol denir, daha kompleks gösterim gerekebilir mesela bir fonksiyondan dönen değeri değişken ismi olarak kullanmak istedik, yada PandaMasterın yanına 3-5 karakter daha yazmak istedik bu gibi durumlar bu şekilde parse etmek yeterli olmayabilir onun yerine curly syntax dediğimiz bir yol daha vardır
2. Yol:
Bu yolde {$degisken} yada ${degisken} şeklinde parse ederiz.
yaparsak PHP $degisken2000 isimli değişkeni arayacaktır ama bulamayacaktır
yazarsak bu sorunu ortadan kaldırırız çünkü değişkenin nerede başlayıp nerede bittiğini gösterdik. Bunun dışında işimize yarayan bir kaç özelliği daha vardır ilerde dizilerde ve fonksiyonlarda değineceğim.
4-Heredoc: Heredoc ise nowdoc un " tırnaklı versiyonudur, yani yazımızda çok fazla " var ve değişken parsing gerektiren bir string tanımlamamız gerekiyorsa kullanırız. nowdoc gibi
şeklinde olur ama bunda " opsiyoneldir, koymasanızda olur.
Son olarakta stringlere bazı durumlarda dizi muamelesi yapabiliriz, yani
Yukarıdaki kod bize 3. harfi getirecektir. Dizi muamelesi yapıyoruz diye foreach da falan kullanırız sanmayın 
Şimdilik bu kadar, birdahaki yazımda diğer değişken türlerine hızlı bir giriş yapacğım, sonrakinde ise tip dönüşümleri üzerinde uzun uzadıya duracağım.
Bunları blog açıp orda yazmayı düşünüyordum ama burada yazayıp daha iyi bir bilgi alış-verişi olur, hatalı bildiğim kısımlarımı da düzeltenler olur bu sayede bana da faydası olur diye düşündüm. Umarım beğenirsiniz.
Dediğim gibi değişkenlerden başlayıp oop,tasarım desenleri gibi konulara kadar gitmeyi planlıyorum.
Bu yazımda değişkenler,değişken tipleri, tip dönüşümü konusuna hızlı bir giriş yapıp ardından string tipini inceleyip(değişken parse etmek, heredoc, nowdoc falan) bugünü bitirmeyi düşünüyorum.
Değişkenler: Değişkenlerin ne olduğuna aşina değilseniz şöyle özetleyebiliriz: Herhangi bir değeri tutmamıza(daha doğrusu ona istediğimiz an ulaşmamıza) yarayan isimlerdir dersek sanırım çok da yanlış olmaz. Değişkenlerde bir değeri tutarız ve daha sonra o değer lazım olduğu zaman ona erişiriz. Php de değişkeni tanımlamak için $ sembolünü kullanırız.
Kod:
$degisken = "Panda";
Değişken Tipleri: PHP de değişken tipini değişkeni tanımlarken belirtmemiz gerekmez fakat ilerleyen zamanlarda birçok yerde çalıştığımız değişkenin tipini bilmemiz gerekir.
4 Tane temel değişken tipimiz(manualde buna scalar demiş)
-integer(Tam sayıları)
-float(Ondalıklı sayıları)
-string(Karakterleri)
-boolean(TRUE yada FALSE)
2 tane bileşik tipler(bir yada daha fazla değişkenden meydana geldiği için)
-array
-object
vardır.
(Bunların dışında resource,null gibi özel tipler ve de mixed gibi sözde tipler vardır ama onlara bu konuda girmeceyeğiz).
İlk kez bunları gören birine biraz karışık gelebilir ama bu kısım sadece özet kısmı o nedenle fazla birşey anlatmadığı için karışık.
Dönüşümler: Daha öncede dediğim gibi PHP'de değişkeni $ işareti ile tanımladıktan sonra türünü belirmemize gerek yoktur, aldığı değere göre otomatik olarak belirler. Yani:
Kod:
$degisken = "Panda"; //şu an bir string
$değişken = 123; // şu an otomatik olarak integer oldu
İstersek çeşitli yöntemle tip dönüşümü yaparız
Kod:
$degisken = "3panda";
echo (int)$degisken; //çıktı 3 olacaktır
String: Daha öncede yazdığım gibi string değişken tipi, karakter setleri(yazılar vs.) tutar diyebiliriz. örneğin "Panda" bir karakterler bütünü dersek bunu string tipinde olduğunu söyleyebiliriz. String tipinde bir değişkeni tanımlamak için kullandığımız 4 farklı yöntem vardır.
1-Tek Tırnak('): Bu yöntem ile iki tane tek tırnak arasına değişkenimizin değerini yazarız. Örneğin:
Kod:
$degisken = 'Panda';
Kod:
$degisken2 = 'PandaMaster bir cümle oluşturdu, Başka bir örnek';
Kod:
$baskaDegisken = 6;
$degisken = '$baskaDegisken in değerini okuyamadı';
echo $degisken;
Bu yöntemin ikinci bir olayı ise sadece ' ve \ i escape etmemiz yeterlidir.
parse: string içinde değişken adını yazdığımız zaman değişken adının yerine değerini koyması diyebiliriz. Yani $baskaDeğişken yazan yerlere onun yerine değeri olan 6 yazdırmak diyebiliriz. Tek tırnakta parse edemez.
escape: PHP manualde Türkçe olarak öncelemek gibi birşey demiş ama ben escape kelimesini kullanıyorum. Bazen bazı karakterleri asıl görevlerinden uzaklaştırmak gerekir mesela tek tırnak işareti bir stringi başlatıp bitirdiğimiz yerlerde kullanıyoruz, peki o yazı içinde tek tırnak gerekirse yani:
Kod:
$degisken = 'Bu yazı tırnakla başladı tırnakla bitecek ama bana Panda'da olduğu gibi yazı içinde tırnak lazım oldu';
2-Nowdoc: Eğer string içinde bize çok sayıda ' gerekli ise her seferinde escape etmek yerine stringi ' ile değil de kendimize özgü bir başlangıç ve bitiş belirteciyle tanımlama isteyebiliriz. Bu sayede PHP tırnakla karşılaşınca bir önem vermez, çünkü artık stringimizin başladığı ve bittiği noktayı tırnak ile değil kendimize özgü bir belitreçle belirledik. Bu yapmak için nowdoc bize yetişir, <<< ardından kendimize özgü tırnak yerine kullanılacak belirteç koyarız(iki tane tek tırnak içinde), alt satıra geçer stringimizi yazar bittiği yerden alt satıra geçer ve özgü belirtecimizle kapatırız.
Kod:
$degisken = <<<'Panda'
test string '' bakın ' ları escape etmemize gerek kalmadı
Panda;
parse: string içinde değişken adını yazdığımız zaman değişken adının yerine değerini koyması diyebiliriz.
Kod:
$string = "Bu bir string";
echo $string;
1. Yol:
Kod:
$userName= "PandaMaster";
echo "En son üye : $userName";
2. Yol:
Bu yolde {$degisken} yada ${degisken} şeklinde parse ederiz.
Kod:
$degisken = "PandaMaster";
//ekrana PandaMaster2000 yazdıracağız
echo "parse edelim $degisken2000";
Kod:
echo "parse edelim {$degisken}2000";
4-Heredoc: Heredoc ise nowdoc un " tırnaklı versiyonudur, yani yazımızda çok fazla " var ve değişken parsing gerektiren bir string tanımlamamız gerekiyorsa kullanırız. nowdoc gibi
Kod:
<<<"Panda"
string
Panda;
Son olarakta stringlere bazı durumlarda dizi muamelesi yapabiliriz, yani
Kod:
$string = "PandaMaster";
echo $string[2];
Şimdilik bu kadar, birdahaki yazımda diğer değişken türlerine hızlı bir giriş yapacğım, sonrakinde ise tip dönüşümleri üzerinde uzun uzadıya duracağım.
Bunları blog açıp orda yazmayı düşünüyordum ama burada yazayıp daha iyi bir bilgi alış-verişi olur, hatalı bildiğim kısımlarımı da düzeltenler olur bu sayede bana da faydası olur diye düşündüm. Umarım beğenirsiniz.