Eylul Forum

Would you like to react to this message? Create an account in a few clicks or log in to continue.

    PHP'ye Giriş

    kskumut
    kskumut
    Ultra Üye
    Ultra Üye


    Mesaj Sayısı : 67
    Kayıt tarihi : 02/08/08


    Başarı Puanı:
    PHP'ye Giriş Img_le10200/2987PHP'ye Giriş Img_ba10  (200/2987)
    Seviye:
    PHP'ye Giriş Img_le10113/2557PHP'ye Giriş Img_ba10  (113/2557)
    Güçlülük:
    PHP'ye Giriş Img_le1079/2319PHP'ye Giriş Img_ba10  (79/2319)

    PHP'ye Giriş Empty PHP'ye Giriş

    Mesaj tarafından kskumut C.tesi Ağus. 23 2008, 13:23

    PHP sunucu taraflı (server side), HTML ile uyumlu bir betik dilidir. Daha önce kullandığım “programlama dili” ifadesi PHP için yüzde yüz açıklayıcı değildir. PHP, HTML de olduğu gibi bir derleyici tarafından derlenmez, sadece sunucudaki php programı tarafından yorumlanır. C bilen birisi için PHP öğrenmesi çok basit olan bir dildir, öyle ki dosya işlemleri gibi karışık konularda PHP, C’den çok daha basittir.
    Yazdığınız PHP kodları hiçbir zaman sitenizin ziyaretçisine görüntülenmez. Ziyaretçi sayfanın kaynağını görüntülese bile göreceği sizin PHP kodlarınızın sunucu sistemdeki php programı tarafından HTML’ye çevrilmiş halidir. Aşağıdaki kod kümesini incelerseniz daha iyi anlayacağınızı sanıyorum (PHP’ye henüz bir giriş yapmadığım için kodları anlamayabilirsiniz, fakat yine de C’ye az da olsa aşina olanlar bir anlam çıkartacaktır).
    Dikkat ettiyseniz sayfamızın kaynağındaki kodlar dört satır halinde yazılmış, eğer PHP programımızda her metinden sonra gelen “\n” karakterini kaldırsaydık sayfamızın kaynağındaki komutlar tek satıra yerleşirdi.
    Fakat bu sayfanın ziyaretçiye görünen kısmını değiştirmediği için üzerinde fazla durulması gereken bir konu değil.
    Bir diğer husus da kodlarımızda kullandığımız
    etiketi. Evet PHP içinde doğrudan doğruya HTML etiketleri kullanabilmemiz bize çok büyük kolaylıklar sağlayacak. PHP dosyaları sunucu sistemde .php ya da .php3 uzantısı ile saklanır (.php3, PHP’nin 3. Sürümü için kullanılmaktadır). Dosyamızda PHP kodlarını kullandığımız yeri göstermek için ya da etiket aralıklarını kullanırız. Bu etiketlerin kullanıldığı yerden itibaren sunucu etiket aralığındaki komutları php yorumlayıcısına gönderir, php yorumlayıcısı da bu kodları düz HTML kodlarına çevirir.
    Denemelerinizi bir UNIX ya da türevi işletim sistemi üzerinde yapmanızı tavsiye ederim, çünkü PHP ile birlikte kullanılan bir çok işlev Windows altında çalışmamakta ya da sorun yaratmaktadır.
    Elinizin altında PHP+MySQL desteği bulunan bir sistem olduğunu varsayarak bölüme başlıyorum.
    Öncelikle PHP’nin yazım kurallarından söz etmek istiyorum. Daha öncede belirttiğim gibi PHP kodları ya da etiketleri arasında kullanılır. Yazdığımız her komuttan sonra ; işareti kullanırız (C’ye benziyor demiştim Wink). Bir web sayfasında veya formdan gelen değişkenleri adlarının başına $ işaret koyarak sembolize ederiz ve değişken adlarında Türkçe karakter kullanamayız.
    kskumut
    kskumut
    Ultra Üye
    Ultra Üye


    Mesaj Sayısı : 67
    Kayıt tarihi : 02/08/08


    Başarı Puanı:
    PHP'ye Giriş Img_le10200/2987PHP'ye Giriş Img_ba10  (200/2987)
    Seviye:
    PHP'ye Giriş Img_le10113/2557PHP'ye Giriş Img_ba10  (113/2557)
    Güçlülük:
    PHP'ye Giriş Img_le1079/2319PHP'ye Giriş Img_ba10  (79/2319)

    PHP'ye Giriş Empty Geri: PHP'ye Giriş

    Mesaj tarafından kskumut C.tesi Ağus. 23 2008, 13:24

    PHP ile Ekrana Yazı Yazma

    PHP konu başlığında verdiğim örnekte olduğu gibi ekrana yazı yazmak için dört değişik yol kullanırız (en azından ben o kadar biliyorum!)

    printf(“Bu bir PHP dosyasıdır.
    ”);
    print(“Bu bir PHP dosyasıdır.
    ”);
    echo (“Bu bir PHP dosyasıdır.
    ”);
    echo “Bu bir PHP dosyasıdır.
    ”;

    Yukarıdaki dört satırda ekrana “Bu bir PHP dosyasıdır.” yazacaktır. Dikkat ederseniz her komuttan sonra bir ; işareti kullanılıyor. Bu işareti kullanmamamız halinde php programı hata verecektir. Şimdi içinizde “Bu yazıyı HTML ile daha kısa bir kod kümesi ile yazmak mümkün!” diye düşünenler olacaktır (bende ilk başta öyle düşünmüştüm :-), fakat ilerde ekrana değişken ile gelen bilginin yazdırılmasını gördükten sonra sizde bu yazım şeklinin gereksiz olmadığını anlayacaksınız.
    Aşağıdaki örnekte $deger adlı değişkene değer atayıp ekrana yazdırıyorum.


    /* Buralar yorum satırı*/
    # Burası da tek satırlık yorum aralığı

    $değer = "Bu değişkenin değeri";
    echo $değer;

    ?>

    Bu dosyayı yazıp ilk.php diye kaydettikten sonra web istemcinizin adres satırına http://localhost/ilk.php yazarsanız ekranda “Bu değişkenin değeri” yazısını göreceksiniz (Kullandığınız sunucunun ismi localhost ve ilk.php dosyasının da ana www dizininde olduğunu varsaydım).
    PHP ile sadece metinsel işlemler değil, matematiksel işlemler de gerçekleştirebilirsiniz. Bunun için C programlama dilinde olduğu gibi toplama için +, çıkarma için -, çarpma için *, bölme için / ve kalan bulma için % sembolleri kullanılır.
    İsterseniz birkaç örnek ile matematiksel işlemlere giriş yapalım.

    ###########################
    # Matematiksel İşlemler #
    # mat.php #
    ###########################

    # Değişkenler tanımlanıyor
    $a = 10;
    $b = 2;
    $c = 3;

    # Kullanılacak matematiksel işlevler tanımlanıyor
    $toplam = ($a + $b + $c);
    $carpim = ($a * $b * $c);
    $bolum = ($a / $b);
    $kalan = ($a % $c);

    # Çıktılar ekrana yazdırılıyor
    echo "Tanımlı değişkenlerin toplamı: $toplam
    \n";
    echo "Tanımlı değişkenlerin çarpımı: $carpim
    \n";
    echo "Birinci ve ikinci değişkenin bölmesi sonucu bölüm: $bolum
    \n";
    echo "Birinci ve üçüncü değişkenin bölmesi sonucu kalan: $kalan";
    ?>

    Yukarıdaki örnek, programlama ile daha önce uğraşmamış birisi için biraz karışık olabilir. Önce değişkenlere değer atanır ve belirli işlevler kullanılarak bu değerler istenilen işlemlerden geçirilerek farklı bir sonuç elde edilir. Tıpkı matematikte kullanılan işlevler gibi, belirli işlemler istenilen değişken değerine uygulanır.
    Yani, y = f(x, w, z) = x + w + z gibi, bizde y yerine $toplam diye bir değişken ve x, w ve z yerine $a, $b ve $c gibi değişkenler kullandık. Matematikte kullanılan işlevlerden tek farkı kullanılan değişken tiplerinin farklı olması ve matematiksel işlemler dışında da işlemlerin yapılabiliyor olmasıdır.
    Bizim örneğimizde bazı matematiksel değerlerin toplamı, çarpımı ve bölümü alındı. Bu matematiksel işlemleri istenilen amaç doğrultusunda uzatıp karmaşıklaştırmak mümkün.
    Yazdığımız PHP dosyasının HTML kaynak kodu

    Tanımlı değişkenlerin toplamı: 15

    Tanımlı değişkenlerin çarpımı: 60

    Birinci ve ikinci değişkenin bölmesi sonucu bölüm: 5

    Birinci ve üçüncü değişkenin bölmesi sonucu kalan: 1

    gibi düz HTML kodlarından ibaret olacaktır. Ziyaretçinin hiçbir şekilde bizim PHP kodlarımızı görme şansı yoktur. Kaynak kodundan kullandığımız \n karakteri HTML çıktımızda satırların tek bir satır gibi değil de alt alta yazılmış satırlar olarak oluşmasını sağladı. Bu gibi durumlarda kullanımı gerekli değilse de kullanımının gerekli olduğu durumlar kesinlikle vardır.
    Birde bir önceki örneği dikkatli bir şekilde incelediyseniz orada değişkenin değerini verirken “ (tırnak işareti) kullanmama karşın son örnekte kullanmadım. Tırnak işareti kullanılmadığı zaman PHP değişkenimizin sayısal değer taşıyan bir değişken olduğunu anlayacaktır.
    Diyelim ki elimizde iki tane metin bilgisi taşıyan değişken var. Bunlar $ad = "Fehmi Noyan" ve $soyad = "İSİ" olsun. Bu değişkenlerin değerlerini birleştirip tek bir değişkende saklamak mümkündür. Saklamak istediğimiz tek değişken $ad_soyad ise kullanmamız gereken komut kümesi

    $ad_soyad = $ad . " " . $soyad;

    gibi bir satırdır. Bu işlem için çok farklı birleştirme yolları olsa da bu kullanım birçok yerde işinizi görecektir.
    kskumut
    kskumut
    Ultra Üye
    Ultra Üye


    Mesaj Sayısı : 67
    Kayıt tarihi : 02/08/08


    Başarı Puanı:
    PHP'ye Giriş Img_le10200/2987PHP'ye Giriş Img_ba10  (200/2987)
    Seviye:
    PHP'ye Giriş Img_le10113/2557PHP'ye Giriş Img_ba10  (113/2557)
    Güçlülük:
    PHP'ye Giriş Img_le1079/2319PHP'ye Giriş Img_ba10  (79/2319)

    PHP'ye Giriş Empty Geri: PHP'ye Giriş

    Mesaj tarafından kskumut C.tesi Ağus. 23 2008, 13:24

    Web Formundan Bilgi Almak

    Buraya kadar anlattıklarım sadece bir giriş içindi (şimdiki aşama da daha işin başı, yani giriş bitmedi). Fakat sizinde bildiğiniz gibi dinamik bir sitede değişkenlerin değerleri kullanıcı tarafından sunucu sisteme yollanır. Bu iş için ya form yöntemi ya da adres satırından bilgi girişi yolu kullanılır. En yaygın ve kullanışlı olanı form yöntemidir.



    Ad ve Soyad Bilgisi


    Adınız:

    Soyadınız:




    ################
    # ad_soyad.php #
    ################
    echo "Adınız $ad ve soyadınız $soyad.";
    ?>

    Yukarıdaki örnek dosyaları yorum satırlarında belirtilen adlar ile yazıp kaydettikten sonra, istemcinizin adres satırına http://localhost/ad_soyad.html yazıp karşınıza çıkacak formu doldurun. "Gönder" düğmesine bastıktan sonra PHP dosyamız çalışacak ve bize istenilen çıktıyı verecektir. Burada dikkat etmeniz gereken nokta istemcinizin adres satırındaki bilgidir. Eğer ben formda adım için “Fehmi Noyan” soyadım içinse “ISI” (Türkçe karakter kullanmamak için büyük i kullanmadım) bilgilerini girersem adres satırında

    http://localhost/ad_soyad.php?ad=Fehmi+Noyan&soyad=ISI

    gibi bir satır görünecektir. Dikkat ederseniz form ile gönderilen bilgilerin name="..." kısmının PHP dosyamızdaki değişken adlarını ve adres satırındaki PHP dosyası ve ? karakterinden sonraki kısımların PHP dosyamıza gidecek değişkenlerin değerini verdiğini fark edeceksiniz.
    HTML dosyamızda oluşturduğumuz web formunda kullandığımız etiketi içindeki name="..." kodu bize o etiket ile gelen bilginin action=”...” kodu ile belirtilen dosyada aynı isimli değişken olarak kullanılacağını belirtir. Web formunu doldurmadan da, sadece adres satırına yukarıdaki satırı girerek de formumuza bilgi yollayabiliriz. Satırda PHP dosyamızın isminden sonra bir ? karakteri kullanılır, daha sonra her değişkenin adı ve değeri birbirinden & karakteri ile ayrılır. Bu yol ile web formlarından bilgi göndermek mümkündür ama pek kullanışlı değildir.
    Formumuzda get yöntemini kullandığımız için adres satırında girdiğimiz bilgiler görüntülendi. Aynı HTML dosyasını formun bilgileri gönderme metodunu post olacak şekilde ayarlayıp tekrar deneyin. Bu sefer adres satırında girilen hiçbir bilgi olmayacaktır. Yani sadece

    http://localhost/ad_soyad.php

    gibi bir satır olacaktır. Ben örneklerimde bundan sonra post yöntemini kullanacağım.
    kskumut
    kskumut
    Ultra Üye
    Ultra Üye


    Mesaj Sayısı : 67
    Kayıt tarihi : 02/08/08


    Başarı Puanı:
    PHP'ye Giriş Img_le10200/2987PHP'ye Giriş Img_ba10  (200/2987)
    Seviye:
    PHP'ye Giriş Img_le10113/2557PHP'ye Giriş Img_ba10  (113/2557)
    Güçlülük:
    PHP'ye Giriş Img_le1079/2319PHP'ye Giriş Img_ba10  (79/2319)

    PHP'ye Giriş Empty Geri: PHP'ye Giriş

    Mesaj tarafından kskumut C.tesi Ağus. 23 2008, 13:25

    Diziler

    Diziler bazen kullanılması kaçınılmaz olan ve her PHP programcısının kullanımını bilmesi gereken elemanlardır. Adından da anlaşılacağı üzere, diziler bir tek değişkenin değeri içerisinde birden çok değer saklar. Mesela içerisinde haftanın günlerini barındıran bir dizi değişken

    $hafta = array(“Pazartesi”, ”Salı”, ”Çarşamba”, ”Perşembe”, ”Cuma”, ”Cumartesi”);

    şeklinde tanımlanabilir. Dikkat ederseniz haftanın son günü olan “Pazar” dizi içerisinde yer almıyor. Pazar’ı dizi içerisine dahil etmek için

    $hafta[] = ”Pazar”;

    şeklinde bir ifade kullanabiliriz. Böylece son belirtilen “Pazar” elemanı dizinin son elemanı olmuş olur.
    Dizi içerisindeki bir elemanı ekrana yazmak için, mesela dizinin 3. elemanı,

    echo $hafta[2];

    komutu kullanılır. Dizinin 3. elemanı için neden “2” rakamını kullandık? Bunun sebebi dizilerin ilk elemanının 1. değil 0. eleman olmasıdır. Bir dizi değişkeninin eleman sayısı count() işlevi ile öğrenilebilir.

    echo count($hafta);

    ifadesi ekrana 7 rakamını basacaktır. Dizi değişkenleri ve bunlar üzerinde işlem yapan işlevler ile ilgili bilgiyi PHP Manuel’in “Array Functions” kısmında bulabilirsiniz.
    kskumut
    kskumut
    Ultra Üye
    Ultra Üye


    Mesaj Sayısı : 67
    Kayıt tarihi : 02/08/08


    Başarı Puanı:
    PHP'ye Giriş Img_le10200/2987PHP'ye Giriş Img_ba10  (200/2987)
    Seviye:
    PHP'ye Giriş Img_le10113/2557PHP'ye Giriş Img_ba10  (113/2557)
    Güçlülük:
    PHP'ye Giriş Img_le1079/2319PHP'ye Giriş Img_ba10  (79/2319)

    PHP'ye Giriş Empty Geri: PHP'ye Giriş

    Mesaj tarafından kskumut C.tesi Ağus. 23 2008, 13:27

    Mantıksal İşleçler

    Bir PHP dosyasında en çok kullanacağınız ifadeleri oluşturan mantıksal işleçleri önceden programlama mantığı almamış bir kişi için ilk etapta anlaşılması biraz zor gelebilir fakat bu bölümü anlatırken bu durumu da göz önünde bulundurdum ve olabildiğimce sade ve anlaşılır bir dil kullanmaya gayret gösterdim.
    Bu etapta tekrar hatırlatmak istiyorum, PHP ile kullanılan mantıksal işleçleri C dili ile kullanılanların tamamen aynısıdır ve kullanım şekilleri arasında hiçbir fark yoktur. İlk önce kullanılan işleçlerinin hangileri olduğunu ve daha sonra bunların kullanım şekillerini anlatmayı daha uygun gördüm.
    İşleç İsmi
    && Ve
    || Veya
    == Eşittir
    ! Değil
    != Eşit değil
    > Büyüktür
    < Küçüktür
    >= Büyük ya da eşittir
    <= Küçük ya da eşittir
    Yukarıdaki işleçlerini mantıksal ifadelerde karşılaştırma ve verilen koşulun doğruluğunu sınama için kullanacağız. İlk iki işleç dışında, az çok matematik bilgisi olan birisi diğer işleçlerinin kullanım şeklini kestirmiştir. Aslında ilk ikisi de matematikte işlenmiş olan mantık konusunun bir parçasıdır.
    Kullanacağımız ifadelere gelen bilgiler bilgisayar dilinde iki şekilde değerlendirilir. 0 ve 1, yani yanlış ve doğru. Kuracağımız tüm ifadeler bu iki değer çevresinde sınırlıdır.
    && İşleçi (Ve) || İşleçi (Veya)
    0 && 0 = 0 0 || 0 = 0
    1 && 0 = 0 1 || 0 = 1
    0 && 1 = 0 0 || 1 = 1
    1 && 1 = 1 1 || 1 = 1
    Yukarıda && ve || işleçlerinin aldıkları değerler doğrultusunda oluşturdukları değerleri yazdım. Bu karşılaştırma işleçlerini birazdan anlatacağım mantıksal ifadeler içerisinde kullanacağız.

    PHP Komutları

    if
    if komutu bir ifadenin doğru olması halinde izleyen komut kümesini işletir. İngilizce anlamı “eğer” olan kelime üstlendiği görev bakımından da anlamı ile bir bütünlük içindedir.

    ################
    # if.php #
    ################

    $a = 5;
    $b = 3;
    if ( $a > $b )
    { echo “a sayısı b sayısından büyüktür.”; }
    ?>

    Yukarıdaki kod parçası $a değişkenindeki değerin sayısal olarak $b dekinden büyük olması halinde komut kümesinde belirtilen kodu yerine getirip ekrana “a sayısı b sayısından büyüktür.“ metnini basacaktır. Aksi taktirde (yani $a’nın sayısal değeri $b’ninkinden küçük ise) hiçbir işlem yapılmadan komut kümesindeki kod atlanır.
    if... else ...
    Bu komutta if komutunda olduğu gibi belirtilen ifadenin doğru olması halinde if ile belirtilen komut kümesini işletir, ifadenin yanlış olması halinde ise else ile belirtilen komut kümesi işletilecektir.

    ###################
    # if_else.php #
    ###################

    $a = 2;
    $b = 3;
    if ($a > $b) {
    echo “a sayısı b sayısından büyüktür.”;
    } else {
    echo “b sayısı a sayısından büyüktür.”;
    }
    ?>

    Parantez içindeki mantıksal ifadenin doğruluğu halinde if komutunu izleyen komut kümesini (“{“ ve “}” işaretleri ile sınırlı bölge) işletilir. Yukarıda $a ile belirtilen değişkenin sayısal olarak değeri $b ile belirtilenden büyük olması halinde ekrana “a sayısı b sayısından büyüktür.” metni aksi taktirde, yani $a değişkeni sayısal olarak $b'den küçükse, ekrana “b sayısı a sayısından büyüktür.” metni basılacaktır. Komut kümesinde belirtilen kod sadece ekrana yazı yazma değil, her türlü işlem için düzenlenebilir.
    while
    Yine İngilizce anlamı “esnasında” olan kelime yaptığı görev itibari ile anlamına yakındır. Parantez içinde belirtilen koşul doğru olduğu sürece istenilen komut kümesini işletir. Aşağıdaki örnek ilk bakışta biraz karışık gelebilir fakat dikkatli ve adım adım takip ederseniz pek de karışık olmadığını anlayacaksınız.


    HTML içinde kullanılan PHP



    ################
    # while.php #
    ################

    $a = 1;
    while($a < 7):
    echo “Bu h$a ile yazılmış bir başlık.
    \n”;
    $a = $a + 1;
    endwhile;
    ?>




    Yukarıdaki örnek hem while döngüsünün kullanımına hem de HTML içinde PHP kullanımına güzel bir örnek oluşturuyor. Kullandığım while döngüsünü aşağıdaki gibi de yazabilirdim.


    HTML içinde kullanılan PHP



    ################
    # while.php #
    ################

    $a = 1;
    while($a < 7)
    {
    echo “Bu h$a ile yazılmış bir başlık.
    \n”;
    $a++;
    }
    ?>




    Sonuç yine aynı olacaktır. Kullanım açısından bir fark yoktur hangisinin kullanılacağı programcıya kalmıştır fakat ben örneklerimde hep ikinci kullanımı tercih ediyorum.
    Yukarıdaki örnekte yabancı olduğunuz bir kullanım $a++ ifadesidir (Bu kullanımın aynısı C’de de vardır) Bu ifade $a = $a + 1 ifadesi ile aynıdır (Programcılıkta çok kullanılan bir ifadedir fakat deneyimi olmayanlar biraz zorlanacaktır). Bunun anlamı, ”$a’daki değeri bir arttır ve sonra bu değeri $a’nın yeni değeri olarak ata” dır. Yani $a = 1 ise $a++’dan sonra $a = 2 olacaktır. Aynı şekilde $a--'de, “$a’nın değerini bir azalt ve bu değeri $a’nın yeni değeri olarak ata” dır.
    Yukarıdaki örnekte ilk olarak $a değişkenine 1 değeri atanıyor ve bu ifadesi ile bir HTML etiketine çevriliyor. $a = 1 değeri için bu ifade

    , $a = 2 için bu ifade

    ... diye değerler alır. while döngüsü ile $a’nın alabileceği en son değerin 6 olduğu belirtilmiştir ($a < 7, yedi olduğu an döngü son bulur!). $a’nın 7 değerini alması ile belirtilen koşul yanlış olur (yani 0) ve döngü işletilmez. Eğer $a++ ifadesi kullanılmamış olsaydı, program sonsuz döngüye girecekti bu da ekrana sonsuz kere

    etiketi ile belirtilen metnin basılması demektir. (Aslında sunucu sistemdeki PHP ayar dosyasında öntanımlı olarak PHP dosyalarının maksimum çalışma süreleri 30 saniye olarak belirlendiği için sonsuz döngü sözcükleri tam olarak doğru değildir).
    while döngüsünde koşul önce gözden geçirilir, daha sonra işlemler gerçekleştirilir.

    kskumut
    kskumut
    Ultra Üye
    Ultra Üye


    Mesaj Sayısı : 67
    Kayıt tarihi : 02/08/08


    Başarı Puanı:
    PHP'ye Giriş Img_le10200/2987PHP'ye Giriş Img_ba10  (200/2987)
    Seviye:
    PHP'ye Giriş Img_le10113/2557PHP'ye Giriş Img_ba10  (113/2557)
    Güçlülük:
    PHP'ye Giriş Img_le1079/2319PHP'ye Giriş Img_ba10  (79/2319)

    PHP'ye Giriş Empty Geri: PHP'ye Giriş

    Mesaj tarafından kskumut C.tesi Ağus. 23 2008, 13:28

    do ... while
    do...while döngüsü, while döngüsü ile aynı işleve sahiptir. Yalnız arada bir fark vardır. While döngüsünde koşul döngüye girilmeden kontrol edilir buna karşın do....while döngüsünde koşul döngünün sonunda kontrol edilir.

    $a = 0;
    do {
    print $a;
    } while($a > 0);
    ?>

    Yukarıdaki kod normal while döngüsü ile yazılmış olsaydı, yani aağıdaki gibi

    $a = 0;
    while($a > 0) {
    print $a;
    }
    ?>

    ekrana hiçbir çıktı vermeyecekti. Halbuki ilk örnekte ekrana “0” basılacaktır. Do....while ile oluturulan bir döngü while ile de oluşturulabilir ve benim şahsi görüşüm, while döngüsünün kullanımı daha kolaydır. Tabi ki bu döngünün de kendine has kullanım alanları vardır ama ben şu ana kadar kendi yazdığım betiklerde bu tür döngüler için hep while döngüsünü kullandım.
    for
    for döngüsü de hemen hemen aynı işlevi görür. Kullanım şeklini, while döngüsündeki örnek ile aynı çıktıyı verecek bir örnek ile açıklamak istiyorum.


    HTML içinde kullanılan PHP



    ################
    # for.php #
    ################

    for ($a = 1; $a < 7; $a++)
    {
    echo "Bu h$a ile yazılmış bir başlıktır.
    \n";
    }
    ?>



    Yukarıdaki kod da while döngüsündeki ile aynı çıktıyı verir. for döngüsünde değişkenin başlangıç değeri ilk olarak yazılır, daha sonra koşul ve en sonunda ise değişken için işletilmesi gereken bölüm gelir. Yani kullanımın kalıbı

    for (ilk_değer;koşul;işlem)

    şeklindedir.
    Tabii benim kullandığım örnek tüm döngüler için geçerli, öyle durumlar ile karşılaşırsınız ki alternatifiniz olmaz yani sadece for ya da while döngüsünü kullanabilirsiniz. Nasıl olsa hepsi aynı işi yapıyor diye üstten bakıp geçmeyin, iyice kavrayın.
    kskumut
    kskumut
    Ultra Üye
    Ultra Üye


    Mesaj Sayısı : 67
    Kayıt tarihi : 02/08/08


    Başarı Puanı:
    PHP'ye Giriş Img_le10200/2987PHP'ye Giriş Img_ba10  (200/2987)
    Seviye:
    PHP'ye Giriş Img_le10113/2557PHP'ye Giriş Img_ba10  (113/2557)
    Güçlülük:
    PHP'ye Giriş Img_le1079/2319PHP'ye Giriş Img_ba10  (79/2319)

    PHP'ye Giriş Empty Geri: PHP'ye Giriş

    Mesaj tarafından kskumut C.tesi Ağus. 23 2008, 13:30

    switch
    switch döngüsü aslında iç içe geçmiş if döngüleridir. Fakat, kişisel deneyimlerime dayanarak söylüyorum, birçok if kullandığınız bir döngüde iş bazen gerçekten içinden çıkılmaz bir hal alıyor. Mesela bir web formu ile (drop-down menu ile) size bir değer gelecek. Siz bu değerin ne olduğunu anlamak istiyorsunuz. Bunun için menüde önceden tanımlı değerler arasında bir secim yapılır. İşte bu seçim için switch döngüsü kullanılır. Aşağıdaki dosyaları yorum kısımlarında belirtilen isimler ile kaydedin ve daha sonra istemcinizden menu.html dosyasını açın.




    Menu



    İşletim sisteminizi seçin







    // menu.php adı ile kaydedin

    switch($os_type)
    {
    case “win” :
    echo “Kullandığınız işletim sistemi Windows 9x”;
    break;
    case “winnt” :
    echo “Kullandığınız işletim sistemi Windows NT”;
    break;
    case “linux” :
    echo “Kullandığınız işletim sistemi Linux”;
    break;
    case “unix” :
    echo “Kullandığınız işletim sistemi UNIX”;
    break;
    case “os2” :
    echo “Kullandığınız işletim sistemi OS/2”;
    break;
    case “macos” :
    echo “Kullandığınız işletim sistemi MacOS”;
    break;
    }
    ?>

    Yukarıdaki örnek kullanıcıya kullandığı işletim sistemini soruyor ve gelen cevap doğrultusunda döngüde belirtilen kısmı işletiyor. Kullandığım break komutu programın o kısmının işletilmesi halinde döngüden çıkılmasını sağlar, yani kullanıcı işletim sistemin Linux olarak işaretlemişse Windows, WindowsNT ve en son Linux bölümü işletilir. Linux bölümündeki “Kullandığınız işletim sistemi Linux” metni ekrana basılır ve bir sonraki komut olan break işletilir, break komutunun işlemesi ile döngüden çıkılır ve böylece diğer değerler kontrol edilerek vakit kaybedilmez.
    switch döngüsünde kullanılan ve benim şu örnekte kullanmadığım bir özelliği daha var: default seçeneği.
    Bu seçenek diğer hiçbir seçim doğru olmadığı taktirde çalıştırılacak kısımdır. Bir örnek vermek gerekirse.

    // menu.php adı ile kaydedin

    $i = 5;
    switch($i)
    {
    case “2”:
    echo “Değeri 2”;
    break;
    case “3”:
    echo “Değeri 3”;
    break;
    default:
    echo “Değeri bilinmiyor”;
    }
    ?>

    Bu kod ekrana “Değeri bilinmiyor” yazacaktır. Çünkü siz $i değişkenine tanımlı olan 2 ve 3 değerleri dışında ne değer verirseniz verin bu iki koşul dışında kalan bölüm yani default ile tanımlı bölüm işletilecektir.
    kskumut
    kskumut
    Ultra Üye
    Ultra Üye


    Mesaj Sayısı : 67
    Kayıt tarihi : 02/08/08


    Başarı Puanı:
    PHP'ye Giriş Img_le10200/2987PHP'ye Giriş Img_ba10  (200/2987)
    Seviye:
    PHP'ye Giriş Img_le10113/2557PHP'ye Giriş Img_ba10  (113/2557)
    Güçlülük:
    PHP'ye Giriş Img_le1079/2319PHP'ye Giriş Img_ba10  (79/2319)

    PHP'ye Giriş Empty Geri: PHP'ye Giriş

    Mesaj tarafından kskumut C.tesi Ağus. 23 2008, 13:32

    Bazı PHP İşlevleri

    Include() ve Require() işlevleri
    include ve require işlevleri bir PHP programcısının hayatını kolaylaştıran başlıca işlevlerdendir. Bu iki işlevin görevleri birbirinin aynı olsa da işleyişlerinde ufak ama önemli bir fark vardır. Bu iki işlev parametre olarak aldıkları dosyayı sanki o dosyanın tüm içeriğini yazılmışçasına işler. Mesela

    #################
    # inc_req.php #
    #################

    include (“./dosya.html”);
    require (“./dosya.html”);

    ?>

    Bu PHP kodu bulunduğu dizindeki dosya.html dosyasını iki kere ekrana basar. Yani sanki siz o dosyanın içeriğini elle yazmışsınız gibi çalışır. Bu iki işlev arasındaki fark, require() işlevi sadece gerektiği durumlarda dosyayı işler fakat include() işlevi dosya ekrana basılmayacak olsa bile (bir döngü içinde olabilir) dosyayı açıp hafıza kaybına sebep olur. Bunun için include() işlevini kullanmanızın zorunlu olmadığı durumlarda require() işlevini kullanmanız performansı arttıracaktır.
    kskumut
    kskumut
    Ultra Üye
    Ultra Üye


    Mesaj Sayısı : 67
    Kayıt tarihi : 02/08/08


    Başarı Puanı:
    PHP'ye Giriş Img_le10200/2987PHP'ye Giriş Img_ba10  (200/2987)
    Seviye:
    PHP'ye Giriş Img_le10113/2557PHP'ye Giriş Img_ba10  (113/2557)
    Güçlülük:
    PHP'ye Giriş Img_le1079/2319PHP'ye Giriş Img_ba10  (79/2319)

    PHP'ye Giriş Empty Geri: PHP'ye Giriş

    Mesaj tarafından kskumut C.tesi Ağus. 23 2008, 13:32

    Bazı PHP İşlevleri

    Include() ve Require() işlevleri
    include ve require işlevleri bir PHP programcısının hayatını kolaylaştıran başlıca işlevlerdendir. Bu iki işlevin görevleri birbirinin aynı olsa da işleyişlerinde ufak ama önemli bir fark vardır. Bu iki işlev parametre olarak aldıkları dosyayı sanki o dosyanın tüm içeriğini yazılmışçasına işler. Mesela

    #################
    # inc_req.php #
    #################

    include (“./dosya.html”);
    require (“./dosya.html”);

    ?>

    Bu PHP kodu bulunduğu dizindeki dosya.html dosyasını iki kere ekrana basar. Yani sanki siz o dosyanın içeriğini elle yazmışsınız gibi çalışır. Bu iki işlev arasındaki fark, require() işlevi sadece gerektiği durumlarda dosyayı işler fakat include() işlevi dosya ekrana basılmayacak olsa bile (bir döngü içinde olabilir) dosyayı açıp hafıza kaybına sebep olur. Bunun için include() işlevini kullanmanızın zorunlu olmadığı durumlarda require() işlevini kullanmanız performansı arttıracaktır.
    kskumut
    kskumut
    Ultra Üye
    Ultra Üye


    Mesaj Sayısı : 67
    Kayıt tarihi : 02/08/08


    Başarı Puanı:
    PHP'ye Giriş Img_le10200/2987PHP'ye Giriş Img_ba10  (200/2987)
    Seviye:
    PHP'ye Giriş Img_le10113/2557PHP'ye Giriş Img_ba10  (113/2557)
    Güçlülük:
    PHP'ye Giriş Img_le1079/2319PHP'ye Giriş Img_ba10  (79/2319)

    PHP'ye Giriş Empty Geri: PHP'ye Giriş

    Mesaj tarafından kskumut C.tesi Ağus. 23 2008, 13:33

    gets() ve fread() işlevleri
    Bu iki işlev yazma modunda açılmış bir dosyadan bilgi almak için kullanılır. Aralarında ufak bir fark vardır. fgets() işlevi metin dosyalarında kullanılır ve dosyayı satır satır okur. fread() işlevi ise dosyayı ikili kipte (bayt bayt) okur.

    ####################
    # dosya_oku.php #
    ####################

    $dosya = fopen(“./dosya.txt”, ”r”);
    while (!feof($dosya))
    {
    $satir = fgets($dosya,1024);
    echo “$satir
    ”;
    }
    fclose($dosya);
    ?>

    Yukarıdaki PHP programı bulunduğumuz dizindeki dosya.txt adlı dosyayı okuma kipinde açıp dosyanın sonuna kadar (!feof kalıbını birazdan anlatacağım) satır satır okuma gerçekleştirir ve ekrana yazar. Dosyayı okuma işlemi bitince de dosyayı kapatıp programı sonlandırır. fgets ile kullandığım “1024” rakamı okunacak bir satırdan kaç bayt alınacağını belirtir. Aslında yukarıdaki program require() işlevi ile hemen hemen aynı işi yapar.
    fputs() ve fwrite() işlevleri
    Tahmin edeceğiniz gibi bu iki işlevde dosyaya bilgi yazmak için kullanılır. İkisi arasında bir fark yoktur. Yazma kipinde açılmış bir dosyaya bilgi girişi için kullanılırlar.

    ###################
    # dosya_yaz.php #
    ###################
    $metin = ”Burada herhangi bir metin olabilir.”;
    $dosya = fopen(“./defter.txt”,”w”);
    fwrite($dosya,$metin);
    fclose($dosya);
    ?>

    Yukarıdaki PHP dosyası $metin adlı değişkendeki bilgiyi $dosya ile belirtilen dosyaya yazacaktır. Bu işlem sırasında bulunduğumuz dizinde defter.txt adlı bir dosya varsa silinecek ve yeniden oluşturulacaktır. Eğer varolan dosyamıza ekleme yapmak istiyorsak kullanmamız gereken dosya açma komutu fopen(“./defter.txt”,”a”) şeklinde olmalıdır. Ekleme dosya sonunu yapılır.
    feof
    Bir dosyanın sonunun gelip gelmediğini kontrol eder. Daha önceki örneklerimden birinde kullanmıştım.

    while (!feof($dosya)) ......

    Oradaki kullanım DEĞİL mantıksal işleçi ile olduğu için kullandığım while döngüsünde dosya sonu olmayana kadar koşul doğru kabul edilip döngü sürdürülecektir.

      Forum Saati Paz Mayıs 19 2024, 22:52