php

başlık hakkında bilgi RSS feed for this topic paylaş yazıcı uyumlu sayfa
  1. Dikkat ! Bu entry PC Labs Wiki'den sözlüğe aktarılmıştır. Düzeltilmesi gerekiyor olabilir. Düzeltilmesi gerektiğini düşünüyorsanız lütfen şikayet et butonuna basarak moderatörlere bildiriniz.

    ders 1: php nedir?

    php, sunucu taraflı çalışan bir script dilidir. bir php dosyası web tarayıcı ile çağırıldığında bu dosya sunucuda çalışır ve ürettiği sonucu kendisini çağıran istemciye iletilir.

    bunu şu şekilde daha iyi anlatabiliriz.

    bir online satış yapan siteye bağlandığınızı varsayalım. bu siteye girdiğinizde bir php doyası çalışıyor. ilk çalışan dosya aksi belirtilmedikçe "index.php"dir. bu dosya çalıştığında içindeki php kodlarını sunucu yorumlar ve o komutların yapması gerekenleri yapar. ve geriye bir html dökümanı gönderir.

    <?
    echo "online alışveriş sitesi";
    ?>

    index.php dosyasının içeriği bu olsun. biz bu dosyayı çağırdığımızda sunucu bu dosyayı yorumlayacak ve bunu html kodu haline getirip istemciye geri gönderecek. bu kodun html şekli;

    online alışveriş sitesi

    şeklinde olacaktır. ve siz istemci bilgisayarda bu sitenin kodlarını incelemek istediğinizde göreceğiniz kod budur.

    yani anlayacağınız gibi; bir php sitesine girdiğinizde php sunucuda çalışır ve size html kodları gönderir. siz php kodlarını göremezsiniz. bu, sitelerin güvenliğini de sağlamış olur.

    php, html içine rahat gömülebilen bir dil. örneğin yukarıdaki işlemi html ile ve php ile tekrar yazalım.

    <html>
    <body>
    online alışveriş sitesi
    </body>
    </html>

    bu kodla yukarıdaki kod aynı işlemi yapar. yani ekrana (sayfaya) "online alışveriş sitesi" yazar. bunu html içine gömülmiş bir php olarak yazalım.

    <html>
    <body>
    <?
    echo "online alışveriş sitesi";
    ?>
    </body>
    </html>

    görüldüğü gibi html içine rahat bir şekilde php kodlarımızı yazdık. bunun değişik bir yolu da var.

    <html>
    <?
    echo "online alışveriş sitesi";
    ?>
    <body>
    </body>
    </html>

    burada da php kodu <body> den önce yazılmış.

    <?
    echo "online alışveriş sitesi";
    ?>
    <html>
    <body>
    </body>
    </html>

    burada ise tamamen üstünde.

    <html>
    <body>
    </body>
    </html>
    <?
    echo "online alışveriş sitesi";
    ?>

    burada ise tamamen altında.

    yani dikkat edilecek olursa <? -- ?> etiketi arasında olduğu sürece nereye yazılırsa yazılsın php olarak çalışacaktır. nereye yazdığınızın ise kullanımınıza göre önemi var. bu önem, işlem sırasıdır. yani eğer php kodun içerisinde daha önce var olması gereken bir değişken kullanıyorsanız php kodunu o değişkenin değer almasından sonraya koymalısınız.

    veya önce php ile veritabanından bir değer alıp sonra bu değeri html ile ekrana yazdıracaksanız bu durumda da php kodu yazdırma alanından önce olmalıdır. bu tipik bir programlama mantığıdır.

    ders 2: php'nin genel yapısı

    <? --------------------------> php kodunun başladığını belirten işaret.
    -------------- kodlar?
    ?> --------------------------> php kodunun bittiğini belirten işaret.

    <?php
    --------------- kodlar
    ?>

    şeklinde bir yapıya sahiptir. kodlar php kodları olabileceği gibi html kodları da olabilir.

    <?
    echo "php öğreniyorum";
    ?>

    <?php
    echo "php öğreniyorum";
    ?>

    görüldüğü üzere her ikisi de aynı işlemi yaparlar.

    her programlama dilinde ve hatta insan dilinde olduğu gibi php'de de yazım kuralları vardır. bu bir dilin olmazsa olmaz koşuludur.

    * her komut ifadesinin bitimine ";" (noktalı virgül) konulmalıdır.
    * php'de büyük harf-küçük harf ayrımı vardır. bu ayrım değişkenler için geçerlidir.
    * $ işareti ile başlayan ifadeler değişken olarak işlem görür.
    * karaktersel değerler " " işaretleri arasına yazılır.

    açıklama satırları

    açıklama satırları program işleyişi sırasında dikkate alınmayan, programın daha sonra okunurken anlamayı kolaylaştırmak için eklenen satırlardır. özellikle karmaşık algoritmaya sahip programlarda şarttır.

    açıklama satırlarında php kodları kullansanız bile bu kodlar yorumlanmayacaktır.

    // ile bir satır içinde, /* */ ile birden çok satır içinde açıklama yapılabilir.

    <?
    $isim = ?dursun?;
    echo "isminiz. : "; // ekrana "isminiz" kelimesi yazılıyor.
    echo $isim; //ekrana $isim değişkenin içeriği yazılıyor.
    ?>

    burada "//" dan sonraki ifadeler php tarafından dikkate alınmazlar.

    <?
    $isim = "dursun";
    echo "isminiz. : "; // ekrana "isminiz" kelimesi
    yazılıyor.
    echo $isim; //ekrana $isim değişkenin içeriği yazılıyor.
    ?>

    bu tip bir kullanım yanlıştır. çünkü "//" tek satır için işlem görür.

    <?
    $isim = "dursun";
    echo "isminiz. : "; /* ekrana "isminiz" kelimesi
    yazılıyor. */
    echo $isim; //ekrana $isim değişkenin içeriği yazılıyor.
    /* bu programdaki amaç
    açıklama satırlarının kullanımını öğretmektir.
    açıklama satırları;
    özellikle karmaşik algoritmaya sahip programlar için şarttır.
    */
    ?>

    burada görüldüğü üzere /* */ arasındaki tüm ifadeler açıklama satırı olarak yorumlanacaktır. /* ile bir açıklamaya başlamışsanız mutlak suretle */ ile kapatınız. bu işaretler arasına yazdığınız satırlarda php komutlarının olması bir anlam ifade etmez.

    <?
    $isim = "dursun";
    //echo "isminiz. : "; // ekrana "isminiz" kelimesi yazılıyor.
    /* echo $isim;
    //ekrana $isim değişkenin içeriği yazılıyor.
    */
    ?>

    burada işleyecek tek komut "$isim = "dursun";" atama işlemidir.

    ders 3: değişkenler

    değişkenler her programlama dilinde olduğu gibi php'de de bilgi depolanabilmesine ve daha sonra bu bilginin gerektiğinde kullanılabilmesine ve değiştirilebilmesine olanak sağlayan araçlardır. değişkenler tanımlandıklarında bellekte kendilerine bir alan ayrılır. ve içerisine atanan değerler bu bellek alanına aktarılır. dolayısıyla değişkenler kullanılmak istendiğinde aslında bu bellek alanındaki bilgiler kullanılmış olur.

    yukarıda da belirtildiği üzere php?de değişkenler $ işareti ile başlarlar. ve yine her programlama dilinde olduğu gibi php?de de değişken tanımlama kuralları vardır.

    1- değişkenler $ işareti ile başlar.
    2- değişkenler ingiliz alfabesinden bir harf (a-z, a-z) veya "_" ile başlayabilir. daha sonra istenen sayıda ve sırada harf, rakam veya "_"(altçizgi) ile devam edebilir.
    3- değişken isimleri "+", "-", "@", ",", "*", "boşluk", "%" gibi özel karakterler içeremez. yani sadece (a-z, a-z, 0..9,_) içerebilir.
    4- büyük-küçük harf ayrımı vardır. "okul" adlı değişkenle "okul" adlı değişken birbirinden tamamen farklı 2 ayrı değişkendir.
    5- değişkenler kullanılmadan önce tanımlanmalıdır. bu sebeple özellikle dallanma olan programlarda değişken tanımlamasına dikkat etmeniz gerekir.

    değişken örnekleri

    $pclabs :geçerli.
    $_pclabs : geçerli.
    $pc_labs : geçerli.
    $pclabs1 : geçerli.
    $pc_1labs2 : geçerli.
    $pc labs : geçersiz. değişken isimleri boşluk içeremez.
    $1pclabs : geçersiz. değişken isimleri rakamla başlayamaz.
    $pc%labs : geçersiz. değişken isimleri harf, rakam ve "_" harici karakter içeremez.

    değişkenlere bilgi aktarımına atama işlemi denir. atama işlemi "sağdan sola" yapılır. yani; sağdaki değer, solda belirtilen değişkene aktarılır.
    php?de atama işlemi "=" ile yapılır.

    $pclabs = "donanım forumu";

    burada görüldüğü üzere $pclabs değişkenine "donanım forumu" yazısı atanıyor. yani sağdan sola bir atama işlemi oluyor. bundan sonraki işlemlerde $pclabs'ı kullandığımızda $pclabs bize "donanım forumu" bilgisini verecek. tabi biz daha sonra bu değeri yine bir atama ile değiştirmezsek.

    değişkenler isim olarak değersizlerdir. önemli olan içeriğidir. yani biz burada $pclabs değişkeninin ismini değil içeriğini kullanabiliriz. burada dikkat eilmesi gereken konu değişkenlerin bir işaretçi olduğudur.

    bir örnekle açıklamak gerekirse;
    $izmir = "istanbul";
    $istanbul = "samsun";
    $samsun = "türkiye?nin en güzel şehri";

    yukarıdaki atamalar ışığında;
    eğer ben ekrana "istanbul" kelimesini yazdırmak istersem "$izmir" değişkenini kullanmam gerekli. benim için değişken isminin bir değeri yok. değişkenin işaret ettiği yerdeki değeri önemli. burada "$izmir" değişkeninin işaret ettiği yerdeki "istanbul" kelimesi beni ilgilendiriyor. bu sebeplede "istanbul" yazdırmak için "$izmir" değişkeninin içeriğini yazdırmam gerekiyor.

    "samsun" kelimesini yazdırmak içinde aynı olay geçerlidir.

    <?
    $izmir = "istanbul";
    $istanbul = "samsun";
    $samsun = "türkiye?nin en güzel şehri";

    echo $samsun." ".$izmir." değil ".$istanbul."?dur.";
    ?>

    bu php kodunun çıktısı;
    samsun izmir değil istanbul'dur.
    değil de, şudur:

    "türkiye'nin en güzel şehri istanbul değil samsun'dur."
    şeklinde olacaktır.

    çünkü bizim için değişkenlerin ismi değil işaret ettiği yerdeki bilgi değeri önemlidir.

    değişkenler birbirlerine de atanabilirler:

    <?
    $istanbul = "samsun";
    $izmir = "istanbul";
    $sehir = $istanbul;
    ?>

    burada $sehir değişkenine $istanbul değişkeninin tuttuğu değer olan "samsun" ifadesi aktarılıyor.

    <?
    $sayi1 = 2;
    $sayi2 = 4;
    $toplam = $sayi1+sayi2;
    ?>

    burada da değişkenler toplanarak çıkan değer $toplam değişkenine aktarılmıştır.

    <?
    $sayi1 = 3;
    $sehir = "samsun";
    $sehir = $sayi1;
    ?>

    burada $sayi değişkeni daha önce "samsun" diye stringsel bir bilgi tutan $sehir değişkenine atanıyor. php'de bu mümkün.

    değişkenler tanımlanırken uyma zorunluluğu olmayan, ama uyulması, program kodunda daha sonra değişiklik yapılmak istendiğinde kolaylık sağlayacak kurallar vardır.

    * değişken ismini yaptığı işlemi çağrıştıracak şekilde verin
    * değişken isimler çok uzun olmasın. gerekli kısaltmayı yapın
    * değişken tanımı hakkında kendinize standartlar oluşturun. hep aynı şekilde tanımlayın
    * php komutlarının önüne $ işareti koyarak değişken tanımlamış olursunuz. ama bu daha sonra anlamada karmaşıklık yaratabilir. bundan kaçının
    * program içinde gerekiyorsa açıklama satırları koyarak gerekli açıklamaları yapınız.

    dizi değişkenler

    tek boyutlu diziler

    şu ana kadar gördüğümüz veri tipleri ile tanımlanmış olan değişkenler aynı anda sadece 1 adet değer tutabiliyorlardı. ve yeni bir değer atadığınızda eski değeri kaybediyordu. dizi değişkenler ise tek bir ad altında birden fazla değeri bir sıra halinde tutabiliyor.

    genel olarak mantığını açıklayalım;

    normal değişkenler tanımlandığında bellekteki bir bölgeyi işaret etmeye başlar demiştik. değişkene her değer atanışında eski değer silinir. yerine yeni değer geçer.

    dizi değişkenler ise tanımlanırken kaç tane bellek alanı ayrılacağı belirtilir.

    diğer programlama dillerinde dizilerin genel bir tip belilemesi yapılır. yani dizinin tüm elemanı ya tamsayı, ya ondalıklı sayı yada karaktersel sayıdır. herhangi bir elemanı farklı tipte olamaz.

    ama php'de durum böyle değildir.dizinin bir elemanı string tipte bir değer tutarken diğer elemanı tam sayı bir değer tutabilir. bu kullanımda esneklik sağlamasına rağmen benim gibi pascal ve c tabanlı kişilerin hoşuna gitmeyebilir.

    dizi tanımlamaları değişkenler gibi basittir.

    $diziadi[elemannumarasi] = deger;
    şeklinde tanımlanır.

    burada diziadi dizi değişkeninin adı. dolayısıyla değişken tanımlamasında uyulması gereken tüm kurallar bunun içinde geçerli.

    elemannumarasi (referans) atanan değerin hangi bellek alanına atanacağını belirler. bu değer tamsayı veya string tipte bir değer olabilir. eğer string tipte bir değer olacaksa ingilizcede olmayan ç,ö,ü,ş,ı,i,ğ karakterlerini kullanmamalısınız.

    deger ise belirtilen bellek alanına atanacak olan değerdir.

    bunu örneklerle daha iyi açıklayabiliriz.

    <?
    $sehir[0] = "samsun";
    $sehir[1] = "istanbul";
    $sehir[2] = "ankara";
    $sehir[4] = "izmir";

    echo "türkiye'nin en güzel şehri $sehir[1] değil $sehir[0]'dur.";
    ?>

    bu kod ekrana "türkiye'nin en güzel şehri istanbul değil samsun'dur." yazacaktır.

    bu kodu incelediğimizde dizilerin kullanımı hakkında temel bilgileri alabilmiş olmalısınız. yine de açıklayalım;

    $sehir[0] = "samsun" yazdığımızda $sehir adlı dizi değişkeni için ayrılmış olan bellek alanının 0 numaralı bölmesine "samsun" değerini atıyoruz. ve bu atamadan sonra $sehir değişkeninin her 0.değerini çağırdığımızda bize "samsun" değeri dönecektir.

    $sehir[1] = "istanbul" yazdığımız anda ise hemen bir bellek alanı daha açılıyor ve içerisine "istanbul" değeri atanıyor. fakat ilk atamış olduğumuz "samsun" değerine bir şey olmuyor. çünkü "samsun" değeri 0. bellek alanında.

    görüldüğü üzre diziler referans numarası da diyebileceğimiz bellek alanı numarası ile kullanılıyorlar. tabi bu durum okumada geçerli. daha sonra göreceğimiz üzre bu durum değişiklik gösterebiliyor.

    hemen bir örnek daha verelim.

    <?
    $sehir[0] = "istanbul";
    $sehir[1] = 34;
    $sehir[2] = "dursun çakir";
    echo $sehir[0]." ".$sehir[1]." ".$sehir[2];

    $sehir[0] = "samsun";
    $sehir[1] = 55;
    echo $sehir[0]." ".$sehir[1]." ".$sehir[2];
    ?>

    bu kod ekrana önce "istanbul 34 dursun çakir", sonra "samsun 55 dursun çakir" yazacaktır. buradaki koda dikkatli bakarsanız diziler ile ilgili birkaç kullanımın da olduğunu görürsünüz.

    1- $sehir[0] dizi alanına ilk önce "istanbul" değerini atadık. dolayısıyla $sehir dizisinin 0.elemanı yani 0 numaralı bellek alanının değeri "istanbul" oldu. ama daha sonra bu alana "samsun" değerini atadık. yani yine 0 numaralı bellek alanına atama yaptık. yukarıda da (değişkenler konusu) belirttiğimiz gibi her bellek alanı aynı anda tek bir değer tutabileceği için eski bilgi olan "istanbul" değeri silinip yerine "samsun" değeri yazıldı. dolayısıyla bu yeni atamadan önce $sehir[0] kullanıldığında "istanbul" değeri alınırken bundan sonra yeni değer atanmadığı sürece $sehir[0] kullanıldığında "samsun" değeri alınacaktır. örnekte de bu açıkca görülmektedir.

    2- bir diğer kullanılan özelliği ise; $sehir[0]'ın değeri string bir değer iken $sehir[1]'in değeri tam sayı bir değerdir. ve php bunu kabul etmektedir.

    <?
    $sayi[] = 12;
    $sayi[] = 10;
    $sayi[] = 25;
    $sayi[] = 14;
    $sayi[] = 55;

    echo "$sayi[4] > $sayi[2] > $sayi[3] > $sayi[0] > $sayi[1]";
    ?>

    programın çıktısı; "55 > 25 > 14 > 12 > 10" şeklinde olacaktır.
    burada dikkat ettiyseniz referans değeri vermedik. bu durumda php 0 (sıfır)?dan başlamak üzere her yeni değer atandığında referans değerini 1 arttırır. bu referans değeri tam sayıdır.

    bir-iki önemli nokta olarak değinelim.
    * referans değerini sadece atama işleminde vermeme şansınız var. herhangi bir değerini kullanırken referans değeri ile kullanmak zorundasınız. örnekte olduğu gibi echo deyiminde referansı ile kullandık.

    * diyelim ki referans değeri verdiniz. ama 4'e kadar verdiniz. daha sonra referans değeri vermeden atama yaparsanız referans değeri 5'ten başlar. yani en son elemanın referans numarasının 1 fazlasından.

    * bu otomatik referans numarası sadece referans numarası tam sayı olan diziler için geçerlidir.

    <?
    $plaka["samsun"] = 55;
    $plaka["istanbul"] = 34;
    $plaka["izmir"] = 35;

    echo "samsun'un plaka numarası : $plaka[samsun]'dir. ";
    echo "samsun'un plaka numarası : ".$plaka["samsun"]."'dir";
    ?>

    programın çıktısı alt alta "samsun'un plaka numarası : 55'dir." şeklindedir.

    bu örnekte de görüldüğü gibi referansı string olarakta verebiliriz. string referans verdiğimizde " " işareti ile sınırlamamız gerekiyor. örnekte görüldüğü gibi.

    dikkat ettiyseniz ilk echo'da kullanırken " " işareti olmadan kullandık. çünkü zaten echo'da " " işareti olduğundan dolayı gerek kalmadı.

    ama ikinci echo'da kullandık. orada ise yazılacak ifadeyi 3 ayrı bölümde ele aldık. ve $plaka değişkenini " " işaretlerinin dışında tuttuk. bu sebeple de " " işaretlerini referans değeri içinde kullanmamız gerekti.

    çok boyutlu diziler

    çok boyutlu dizilerde tek boyutlu diziler gibi. matrislerde denen bu tip dizilerde bir nevi satır-sütün vardır. excel'deki hücre yapısı gibi.

    <?
    $takim["samsunspor"]["stad"] = "19 mayıs";
    $takim["samsunspor"]["sehir"] = "samsun";
    $takim["samsunspor"]["kurulus"]= 1965;

    $takim["galatasaray"]["stad"] = "ali sami yen";
    $takim["galatasaray"]["sehir"] = "istanbul;
    $takim["galatasaray"]["kurulus"] = 1905;

    $takim["besiktas"]["stad"] = "inönü";
    $takim["besiktas"]["sehir"] = "istanbul";
    $takim["besiktas"]["kurulus"] = "1903";

    $takim["fenerbahce"]["stad"] = "şükrü saraçoğlu";
    $takim["fenerbahce"]["sehir"] = "istanbul";
    $takim["fenerbahce"]["kurulus"] = 1907;

    echo $takim["samsunspor"]["kurulus"]." tarihinde kurulan samsunspor, maçlarını ". $takim["samsunspor"]["sehir"]." ". $takim["samsunspor"]["stad"]." stadında oynamaktadır.";
    ?>

    bu kod ekrana "1965 tarihinde kurulan samsunspor, maçlarını samsun 19 mayıs stadında oynamaktadır." yazar.

    ders 4: veri tipleri

    değişkenleri öğrendik. değişkenler için veri depolamada kullanılan araçlar olduklarını söyledik. şimdi sıra değişkenler içinde ne tür veriler depolayabileceğimize geldi.

    değişkenlerde farklı yapıya sahip veriler depolamak isteriz. mesela bir değişkende "samsun" ismini tutarken diğerinde "55" sayısını tutmak isteriz. buna gereksinim duymamızın sebebi değişkenlerle yapmak istediğimiz işlemlerden çıkan sonuçların tiplerinin önemli olmasıdır.

    eğer programımızda insan isimleri tutacaksak bunu tutacağımız değişkenin karaktersel bilgi tutabilecek tipte olması gerekir. diğer dillerde bu tipi bir defa tanımlayıp program içerisinde mutlak suretle o tipte kullanmanız gerekmekte. ama php'de durum çok farklı.

    yukarıdaki örneklerde görüldüğü üzere değişken tanımlamak için değişken ismi yazıp ona bir değer atamak yeterlidir. atadığınız değere göre o değişkenin tipini belirlemiş olursunuz. daha önce "samsun" ismi atadığınız bir değişken o anda karaktersel bir tipte olurken, aynı değişkene daha sonra 55 sayısını atadığınızda o değişken artık sayıları tutabilen bir değişken halini alır.

    şimdi bu veritiplerini görelim.

    tam sayılar ve ondalıklı sayılar
    matematikten de bildiğimiz bu ifadeler php?de de aynı anlamda kullanılır. ayrıca açıklamaya gerek görmüyorum.

    eğer bir değişken tam sayı ise veya ondalıklı sayı ise toplama, çıkarma, çarpma, bölme işlemleri gibi matematiksel ifadelerde kullanılabilir. yani sayısal bir değeri olduğu sürece o değişken üzerinde matematiksel işlemler yapabilirsiniz.

    şimdi birkaç örnek verelim.

    <?
    $sayi1 = 55;
    $sayi2 = 3;
    $toplam = $sayi1+$sayi2;
    echo $toplam;
    ?>

    burada $sayi1 ve $sayi2 adlı 2 adet değişken tanımladık. ve atadığımız değerlerle tiplerinin tam sayı olduğunu belirttik. tam sayı tipte oldukları için matematiksel işlem olan toplama işlemini üzerlerinde uygulayabildik.

    <?
    $sayi1 = 55.1;
    $sayi2 = 34.2;
    $toplam=$sayi1+$sayi2;
    echo $toplam;
    ?>

    burada ise değişkenlerimizi gerçel (ondalıklı) sayı olarak tanımladık. yine matematiksel işlemler uygulayabiliyoruz. burada dikkat edilmesi gereken nokta ondalıklı sayının ondalık kısmını "." ile ayırıyor olmamız. türkiye?de ondalık ayracı "," ama ingilizcede "." olduğundan dolayı burada "," değil "." kullanmak zorundayız.

    üslü sayılarda bir nevi ondalıklı sayıdır aslında. ama nasıl tanımlarız sorusuna karşın ona da bir örnek vereyim.

    <?
    $sayi1 = 5e5; //5 üzeri 5.
    $sayi2 = 34.2e-10; //34.2 üzeri -10;
    ?>

    şeklinde tanımlama yaparak üslü sayıları da kullanabiliriz.

    karakter dizileri (string)

    adından da anlayabileceğiniz gibi karakterlerin birbiri ardına gelerek oluşturdukları bir veri tipidir. içerisinde karakterler ve rakamlar bulundurabilir. içinde bulundurdukları rakamların sayısal değerleri yoktur. karakter dizileri " " veya ' ' arasına yazılır. her ikisinin birbirinden farkı var. buna daha sonra değineceğiz. yukarıdaki örneklerde "samsun", "istanbul" gibi değişkenler karakter dizileriydi.

    çift tırnak işareti ile tanımlama

    yukarıda da belirttiğim üzre php'de string tipte değişkenler 2 şekilde tanımlanıyordu. bunlardan biri " ".

    eğer değişkenlere " " ile değer atanıyorsa bu değişkene bir başka değişkenin içeriğide " " arasında atanabilir.

    <?
    $sehir = "samsun";
    $gercek= "türkiye?nin en güzel şehri $sehir'dur";
    echo $gercek;
    ?>

    bu örnekte ekrana "türkiye'nin en güzel şehri samsun'dur" (" "işaretleri yok) yazılır. yani $sehir değişkeninin ismi değil içeriği aktarılır. aynı örneği daha sonra ' ' ile de yapacağız.

    çift tırnak işaretinin bir diğer özelliği de saklı karakterlerin ekrana yazdırılmasıdır. mesela çift tırnakla tanımladığımız değişkenler içerisinde çift tırnak kullanabilmek gibi işlemleri yapabiliriz. veya değişken isimlerinde kullandığımız $ işaretini ekrana yazdırmak isteyebiliriz. işte ",$, işaretleri saklı karakterlerdir.

    peki nasıl kullanacağız?

    <?
    $degisken1 = "pclabs'ta; "php öğreniyorum" adlı konu açtım.";
    $degisken2 = "bir ekran kartına 600$ verilir mi?";
    $degisken3 = "fonts dizininin yolu: c:\windows\fonts";

    echo $degisken1."";
    echo $degisken2."";
    echo $degisken3."";
    ?>

    bu örnekte görüldüğü üzere saklı karakteri yazmak veya eklemek için saklı karakterden önce "" kullanıyoruz. buradan da "" işaretinin neden saklı karakter olduğu anlaşılmıştır umarım.

    not: yukarıda kullanılan < br > html kodudur. ve alt satıra geçişi sağlar.

    tabi bunu sadece değişkenlere atamak için kullanıldığını düşünmeyin. bu işlem echo gibi diğer komutlarda da böyledir.

    <?
    $degisken1 = " samsun";
    echo "türkiye?nin en güzel şehri "$degisken1". ";
    echo "c:\proje\onemli dizininde 6000$ değerinde proje var. "sakın" bir şey olmasın.";
    ?>

    bu şekilde de kullanılabilir.

    tek tırnak ile tanımlama: tek tırnak arasına yazılan her şey olduğu gibi ekrana aktarılır. bir değişkenin içeriği ekrana yazdırılamaz. tek tırnak ile tanımlanan dizilerde sadece 2 adet saklı karakter vardır. " ve ' " dır.

    <?
    $degisken1 = 'dursun çakir';
    $degisken2 = 'samsun';

    echo ' $degisken1'in değeri ile $degisken2'nin değeri farklıdır.';
    ?>

    ekran çıktısı "$degisken1'in değeri ile $degisken2'nin değeri farklıdır." (" " işaretleri yok) şeklinde olacaktır. yani değişkenlerin içeriği değil isimleri yazılır. değişken isimlerinden sonra gelen ( ') ise ekrana (') işaretini yazdırmak için koyulmuştur.

    karakter dizileri ile alıştırmalar

    bu bölümde hem birkaç örnek vereceğim hemde birkaç yeni bilgi öğreneceğiz.

    <?
    $deger1 = "samsun";
    $deger2 = "türkiye'nin";
    $deger3 = "en güzel";
    $deger4 = "şehri";
    $deger5 = "'dur";

    $cumle = $deger2." ".$deger3." ".$deger4." ".$deger1.$deger5;
    echo $cumle."";

    echo $deger2." ".$deger3." ".$deger4." ".$deger1.$deger5."";

    echo "$deger2 $deger3 $dege4 $deger1$deger5";
    ?>

    yukarıda echo ile başlayan satırların hepsi ekrana "türkiye'nin en güzel şehri samsun'dur" yazdırır. burada toplu halde değişik örnekleri görebilirsiniz.

    dikkat ettiyseniz;
    $cumle = $deger2." ".$deger3." ".$deger4." ".$deger1.$deger5;
    atama işleminde ve hemen altındaki echo komutunda . (nokta) kullandık. php?de stringleri birleştirmek için nokta kullanılır. yani bir string ifadenin sonuna başka bir string ifade eklemek istiyorsanız araya "." koyuyorsunuz. konuyu yukarıdaki örneği uygulayarak daha iyi anlarsınız.

    <?
    $deger1 = "12";
    $deger2 = "56";
    $deger3 = $deger1+$deger2;

    echo $deger3;
    ?>

    yukarıda string tipte tanımlanan değişkenlerin içindeki sayıların sayısal anlam ifade etmedikleri ve matematiksel işlemlerde kullanamayacağımıza değinmiştik. yukarıdaki örneği test ederseniz doğru sonucu elde edebileceğinizi görürsünüz. yani php yorumlayıcısı bu değişkenleri toplama işleminde direkt olarak sayısal ifadelere dönüştürüp kullanıyor. peki yukarıda yazdıklarımız hatalı mı?

    <?
    $deger1 = "a12";
    $deger2 = "b43";
    $deger3 = $deger1+$deger2;
    echo $deger3;
    ?>

    bu şekil kullandığınızda alacağınız değer "0" (sıfır) dır.

    <?
    $deger1 = "12a";
    $deger2 = "b43";
    $deger3 = $deger1+$deger2;
    echo $deger3;
    ?>

    bu şekil yazdığınızda ise "12" değerini alırsınız.

    buradan çıkarılan sonuç ise; php'de karaktersel veri tipi ile tanımlanmış olan değişkenler üzerinde matematiksel işlemler yapılmak istendiğinde, php, değişkenin rastladığı ilk harfe kadarını alıp sayısal değere dönüştürüp kullanıyor. dolayısıyla ilk karakter harf olduğunda ilk karakter rakam olmadığından 0 (sıfır) olarak alıyor. çok esnek bir yapı.

    not: gerçi yukarıda bolca kullandığımız için anlamışsınızdır ama yine de yazayım.
    echo komutu ekrana (yani sayfaya) yazı yazdırmak için kullanılır.

    boolean tip

    bu veri tipi mantıksal yada ilişkisel işlemlerde kullanılır. 2 değer alır. "doğru" anlamına gelen "true" ve "yanlış" anlamına gelen "false". yazım içerisinde true için 1, false için 0 olarak düşünebiliriz.

    özellikle karşılaştırmalarda kullanılırlar.

    boolean tipte büyük-küçük harf duyarlılığı yoktur.

    5.ders: operatörler

    her programlama dilinde olduğu gibi php'de de operatörler vardır. operatörler nesneler veya sabitler üzerinde önceden tanımlanmış birtakım işlemleri yapan işleçlerdir. örneğin toplama ve atama işlemleri gibi?

    şimdi bu operatörlere bir bakalım?

    1- aritmetik operatörler

    aritmetik operatörleri adından da anlaşılacağı üzre matematiksel işlemleri yerine getiren işleçlerdir (operatör). bunlar toplama (+), çıkarma (-), çarpma (*), bölme (/) ve mod alma (%)'dır. şimdi bunları bir örnekle görelim.


    <?
    $sayi1 = 10;
    $sayi2 = 4;

    echo ($sayi1 + $sayi2).""; // burada + operatörü var. ekrana 14 yazılır.
    echo ($sayi1 - $sayi2).""; // burada ? operatörü var. ekrana 6 yazılır.
    echo ($sayi1 * $sayi2).""; // burada * operatörü var. ekrana 40 yazılır.
    echo ($sayi1 / $sayi2).""; // burada / operatörü var. ekrana 2.5 yazılır.

    echo $sayi1 % $sayi2; // burada % (mod alma) operatörü var. ekrana 2 yazılır.
    ?>

    2- atama operatörleri

    değişkenlere değer atamak için kullanılan operatörlerdir. yukarıdaki konularımızda en temel atama operatörü olan "=" operatörünü kullandık. şimdi bu konuyu da örneklerle açıklayalım.

    <?
    $a = 8; // = atama operatörü kullanıldı. $a değişkenine 8 değeri atandı.

    $a = $a+2; // = atama operatörü kullanıldı. $a değişkeninin değeri 2 arttırıldı.
    $a += 2; // += atama operatörü kullanıldı. $a değişkeninin değeri 2 arttırıldı.

    $a -= 3; //-= atama operatörü kullanıldı. $a değişkeninin değeri 3 azaltıldı.

    $a = 4+($b=5)*2; // = operatörü kullanıldı?

    /* burada farklı olarak atama işleminin içinde başka bir atama işlemi kullanıldı.*/
    ?>

    yukarıdaki örnekte de görüldüğü üzre (=), (+), (-) olmak üzere 3 farklı atama operatörü kullandık. kullanmadıklarımızdan ise (*=), (/=) ve (%=) var.

    kullanımlarına ve anlamlarına bakalım:

    $a += 4; // $a = $a + 4;
    $a -= 4; //$a = $a ? 4;
    $a *= 4; // $a = $a * 4;
    $a /= 4; // $a = $a / 4;
    $a %= 4; // $a = $a % 4;
    $a++; // $a = $a + 1;
    ++$a; // $a = $a + 1;
    $a--; // $a = $a ? 1;
    --$a; // $a = $a ? 1;

    $a++ ile ++$a arasındaki fark:
    $a++ kullanıldığında bu işlemi herhangi bir ifade içinde kullanırsanız; işleme, o anki değeri girer ve sonra değeri 1 arttırılır. ++$a'da ise işleme girmeden önce değer arttırılır ve işlemde yeni değeri kullanılır.

    örnek verelim hemen;

    <?
    $a = 10;
    echo $a++."";
    echo $a."";

    $a = 10;
    echo ++$a."";
    ?>

    üstteki "echo" ile ekrana 10 yazdırılacak. sonra $a'nın değeri 1 arttırılıp alttaki "echo"da ekrana 11 yazdırılacak.

    en alttaki "echo"da ise bir üstte 10 atanmasına rağmen $a'yı hemen 1 arttırıp ekrana 11 yazacak.

    3- mantıksal operatörler

    mantıksal operatörler; işlem sonucunda doğru ya da yanlış değeri gönderen operatörlerdir. bunlar and (&&), or (||), xor , not (!) dir. bu ifadeler özellikle "if" deyiminde sık kullanıldığından o kısımda göreceğiz.

    4- ilişkisel (karşılaştırma) operatörler

    büyük, küçük, eşit gibi karşılaştırmaların yapılmasını sağlayan ve sonuc olarak geriye doğru (true), yanliş (false) değerlerinden birini gönderen operatörlerdir.

    operatör ve işlevleri:

    == // eşittir (iki ifadenin eşitliğini denetler)
    > // büyüktür (solundaki ifadenin sağındaki ifadeden büyüklüğünü denetler)
    < // küçüktür (solundaki ifadenin sağındaki ifadeden küçüklüğünü denetler)
    >= // büyük ve eşittir (solundaki ifadenin sağındaki ifadeden büyük ya da eşitliğini denetler)
    <= // küçük ve eşittir (solundaki ifadenin sağındaki ifadeden küçük ya da eşitliğini denetler)
    != // eşit değildir ( solundaki ifadenin sağındaki ifadeye eşit olmadığını denetler)

    ifadeler geriye "doğru" veya "yanlış" olduğuna dair bilgi gönderir.

    $a = 5;
    $b = 10;
    $c = 5;
    değerlerini baz alırsak;

    $a == $b //ifadesi geriye "yanlış (false)" döndürür;
    $a == $c //ifadesi geriye "doğru (true)" döndürür;

    $a > b //ifadesi geriye "yanlış (false)" döndürür;
    $a > c //ifadesi geriye "yanlış (false)" döndürür;

    $a >= b //ifadesi geriye "yanlış (false)" döndürür;
    $a >= c //ifadesi geriye "doğru (true)" döndürür;

    $a < b //ifadesi geriye "doğru (true)" döndürür;
    $a < c //ifadesi geriye "yanlış (false)" döndürür;

    $a <= b //ifadesi geriye "doğru (true)" döndürür;
    $a <= c //ifadesi geriye "doğru (true)" döndürür;

    $a != b //ifadesi geriye "doğru (true)" döndürür;
    $a != c //ifadesgeriye "yanlış (false)" döndürür;

    not: atama operatörü olan (=) ile ilişkisel (karşılaştırma) operatörü olan ()'i karıştırmayın. (=) operatörü ile değer ataması yapılırken () ile iki ifadenin eşit olup olmadığı kontrol edilir..

    5- hata operatörü (@)

    web sayfalarınızda scriptler kullandığınızda bu scriptlerde çeşitli nedenlerden dolayı hatalar oluşabilir. bunun kontrolünü sağlayamazsanız oluşan hata anında sayfayı açmış olan kişiye görünür. bu istenen bir durum değildir. bu halde sayfamızda herhangi bir hata olduğunda bu hatayı kontrol edip kullanıcıya yansıtmamak gerekir. burada devreye hata operatörü (@) girer.

    örneğin; sayfanızda veritabanı bağlantısı var. fakat serverde oluşan bir hatadan dolayı servera bağlantı kesildi. bu durumda kullanıcı sayfayı açtığında veritabanına bağlanamayacağı için bir hata oluşacak. eğer siz bu hatayı kontrol etmezseniz php?nin kendi hata mesajı kullanıcıya iletilecektir.

    == : eşittir (iki ifadenin eşitliğini denetler)
    > : büyüktür (solundaki ifadenin sağındaki ifadeden büyüklüğünü denetler)
    < : küçüktür (solundaki ifadenin sağındaki ifadeden küçüklüğünü denetler)
    >= : büyük ve eşittir (solundaki ifadenin sağındaki ifadeden büyük ya da eşitliğini denetler)
    < : küçük ve eşittir (solundaki ifadenin sağındaki ifadeden küçük ya da eşitliğini denetler)
    ! : eşit değildir ( solundaki ifadenin sağındaki ifadeye eşit olmadığını denetler)

    ifadeler geriye "doğru" veya "yanlış" olduğuna dair bilgi gönderir.

    $a = 5;
    $b = 10;
    $c = 5;
    değerlerini baz alırsak;

    $a == $b ifadesi geriye "yanlış (false)" döndürür.
    $a == $c ifadesi geriye "doğru (true)" döndürür.

    $a > b ifadesi geriye "yanlış (false)" döndürür.
    $a > c ifadesi geriye "yanlış (false)" döndürür.

    $a >= b ifadesi geriye "yanlış (false)" döndürür.
    $a >= c ifadesi geriye "doğru (true)" döndürür.

    $a < b ifadesi geriye "doğru (true)" döndürür.
    $a < c ifadesi geriye "yanlış (false)" döndürür.

    $a <= b ifadesi geriye "doğru (true)" döndürür.
    $a <= c ifadesi geriye "doğru (true)" döndürür.

    $a != b ifadesi geriye "doğru (true)" döndürür.
    $a != c ifadesi geriye "yanlış (false)" döndürür.

    not: atama operatörü olan (=) ile ilişkisel (karşılaştırma) operatörü olan ()'i karıştırmayın. (=) operatörü ile değer ataması yapılırken () ile iki ifadenin eşit olup olmadığı kontrol edilir..

    5- hata operatörü (@)

    web sayfalarınızda scriptler kullandığınızda bu scriptlerde çeşitli nedenlerden dolayı hatalar oluşabilir. bunun kontrolünü sağlayamazsanız oluşan hata anında sayfayı açmış olan kişiye görünür. bu istenen bir durum değildir. bu halde sayfamızda herhangi bir hata olduğunda bu hatayı kontrol edip kullanıcıya yansıtmamak gerekir. burada devreye hata operatörü (@) girer.

    örneğin; sayfanızda veritabanı bağlantısı var. fakat serverde oluşan bir hatadan dolayı servera bağlantı kesildi. bu durumda kullanıcı sayfayı açtığında veritabanına bağlanamayacağı için bir hata oluşacak. eğer siz bu hatayı kontrol etmezseniz php?nin kendi hata mesajı kullanıcıya iletilecektir.

    (admin, 6 yıl önce)
  2. pclabs wiki'deki başlıkların sözlüğe aktarımının ne gibi sakıncaları olabileceğini bize gösteren programlama dili. aktaran da kendisi zaten *

    (bkz: el kitabı gibi entry)

    (gokhanozturk, 6 ay önce)

Cevapla

İleti göndermek için giriş yapmalısınız