• 07-07-2007, 02:25:22
    #1
    Her programlama dilinde olduğu gibi PHP'de de değişkenler çok önemlidir. Daha önce programlama tecrübesi olanlar için değişken (variable) çok yakın bir ifadeyken yeni programlamaya başlayan biri için en temel soru işaretidir. Değişkenleri iyi kavramadan diğer konulara geçmek imkansızdır. Çünkü her adımda değişkenlerle mutlaka karşılaşacağız. Değişkenler kod içerisinde değiştirmeyi düşündüğümüz veya çeşitli verileri içinde sakladığımız isim parçalarıdır.
    Normal hayattan örnek vermek gerekirse, okula gittiğimiz zaman sürekli olarak "ders" 'e gireriz, işte bu değişkendir. Hangi derse girdiğimiz ise bu değişkenin değeridir. Örneğin 1. ders Matematik, 2. ders Türkçe şeklinde değişkenimiz sürekli olarak değişebilir. 1. ders de iken dersimiz ne diye sorduğumuzda herkes Matematik cevabını verirken, 2. ders'e girdiğimizde aynı soruya cevabımız Türkçe olacaktır..
    Şimdide programlama kısmına geçelim. PHP'de değişkenler $ ile belirtilmektedir. Eğer PHP'de bir yazının başında $ işareti varsa o değişkendir. Değişkenleri tanımlarken dikkat etmemiz gereken bazı noktalar vardır.
    • Değişken numara ile başlayamaz $1numara yanlıştır
    • Karakter kullanılamaz (+,-,& gibi) $numara-1 yanlıştır
    • Türkçe karakter kullanılamaz $türkçe yanlıştır
    • PHP standart değişkenleri kullanılamaz $HTTP_POST_VARS yanlıştır Bu standart değişkenlere ilerde değineceğim.
    • Büyük-Küçük harf duyarlıdır $degisken ve $DegiskeN farklı iki değişkendir
    • Değişken isimlerini mümkün olduğunca açık ve net yazmak gerekir $DersinAdi gibi
    • Belirli bir standardı takip etmemiz kodlama açısından faydalı olacaktır, kelimenin 1. harfini büyük yazmak veya kelimelerin arasını _ ile ayırmak gibi $DersinAdi veya $dersin_adi şeklinde
    Bu konuları örnekten önce anlattım ama bunlara mutlaka bilmemiz gereken hususlardır. Şimdi ilk ve en basit örneğimizi yapalım
    <?
    $mesaj = "Merhaba Dünya";
    echo($mesaj);
    ?>
    Bunun çıktısı aşağıdaki şekilde olacaktır.
    Merhaba Dünya
    Gördüğünüz gibi değişkenimize bir değer atadık ve ekrana bastık. Gerçek dünyadaki örneğimize uygun bir örnek yapalım.
    <?
    $dersin_adi = "Matematik";
    echo("1. Dersin Adı : ");
    echo($dersin_adi);
    echo("<br>");
    $dersin_adi = "Türkçe";
    echo("2. Dersin Adı : ");
    echo($dersin_adi);
    ?>
    Bunun çıktısı aşağıdaki şekilde olacaktır.
    1. Dersin Adı : Matematik
    2. Dersin Adı : Türkçe
    Değişkenimize bir değer atamak istediğimiz zaman = işaretini kullanmamız yeterli olacaktır. PHP'de yazıları birbiriyle birleştirmek için . (nokta) kullanabiliriz. Yukarıdaki örneğimiz . (nokta) kullanarak yazdığımız zaman daha kısa ve anlaşılır olacaktır.
    <?
    $dersin_adi = "Matematik";
    echo("1. Dersin Adı : ".$dersin_adi."<br>");
    $dersin_adi = "Türkçe";
    echo("2. Dersin Adı : ".$dersin_adi);
    ?>
    Bu kodun çıktısı da yukarıdaki ile aynı olacaktır. . (nokta) ile yazılarımızı ve değişkenlerimizi birleştirmiş olduk. Bunu birçok yerde kullanabiliriz. Mesela isim ve soyadı ayrı ayrı alıp ekrana tek bir parça halinde yazabiliriz.
    <?
    $isim = "Hasan";
    $soyad = "Yaşar";
    echo($isim." ".$soyad);
    ?>
    Bu kod ekrana Hasan Yaşar yazacaktır. Aynı işlemi iki değişkenimizi bir değişkende birleştirerek de yapabilirdik.
    <?
    $isim = "Hasan";
    $soyad = "Yaşar";
    $isim_soyad = $isim." ".$soyad;
    echo($isim_soyad);
    ?>
    Bu kodumuz da ekrana aynı sonucu yazacaktır. PHP'de değişkenler konusunda oldukça esnektir. Hem yazıyı, hem sayıyı değişken olarak atayabiliriz.
    <?
    $isim = "Hasan";
    $soyad = "Yaşar";
    $yas = 27;
    echo($isim." ".$soyad." ".$yas." yaşındadır");
    ?>
    Buradaki kodumuz ekrana Hasan Yaşar 27 yaşındadır yazacaktır. Esneklik olarak değişkenimizi . (nokta) ile birleştirmek yerine direk olarak parantez içerisinde de yazabilmekteyiz. Yukarıdaki tanımlamalarımızın devam ettiğini düşünerek alttaki örneği yazabiliriz.
    <?
    echo("$isim $soyad $yas yaşındadır");
    ?>
    Bu kodun ekran çıktısı da aynı olacaktır. Bir önceki konuda ' (tek tırnak) ile " (çift tırnak) arasında bazı farklardan bahsetmiştim, burada ' (tek tırnak) kullandığımız takdirde ekrana $isim $soyad $yas yaşındadır şeklinde bir çıktı gelecektir, haliyle değişkenlerimizin değerleri ekrana basılmamış olacaktır.
    Değişken tanımlamalarını yaparken değişken tanımlarken bir değişken ismini de kullanabiliriz..
    <?
    $olay = "ders";
    $$olay = "Matematik";
    echo($ders);
    ?>
    Bu kod ekrana Matematik yazdıracaktır. $olay değişkeninde ders tanımlı olduğu için tekrar $ koyduğumuz zaman $ders diye bir değişken olacaktır ve atamamız ona yapılacaktır.
    Değişkenleri ilk başlarda en çok formlarımızda kullanacağız. Bu nedenle formlardan nasıl veri alacağımızı da öğrenmemiz gerekiyor. Form'dan veri gönderme metodumuz POST ise $_POST["deger"] şeklinde alabiliriz, GET metodu ile gönderildiyse $_GET["deger"] seklinde veriyi alabiliriz.
    Öncelikle bir HTML dosyası oluşturup içerisine de formumuzu hazırlayalım, ismini form.html olarak kaydedebiliriz.
    <form action="form.php" method="GET">
    İsminizi Giriniz : <input type="text" name="isim"><br>
    Soyadınızı Giriniz : <input type="text" name="soyad"><br>
    <input type="submit" value="Gönder">
    </form>
    Daha sonra bir php dosyası ile bunu okuyup ekrana basalım. Dosyamızın adı action'da belirttiğimiz isim olmalıdır, çünkü verilerimiz orada yazan dosyaya gönderilmektedir.
    form.php
    <?
    echo("İsminiz : ".$_GET["isim"]."<br>");
    echo("Soyadınız : ".$_GET["soyad"]."<br>");
    ?>
    Ekran çıktısı :
    İsminiz : Girdiğiniz isim
    Soyadınız : Girdiğiniz soyad
    şeklinde olacaktır. Metod olarak POST kullanmış olsaydık, dosyamız aşağıdaki şekilde olacaktı.
    form.php
    <?
    echo("İsminiz : ".$_POST["isim"]."<br>");
    echo("Soyadınız : ".$_POST["soyad"]."<br>");
    ?>
    Birde yukarıda bahsettiğim PHP'nin kendi kullandığı standart fonksiyonlar vardır. Bunlara genel tanımlı değişkenler (environment variables) denilmektedir.
    Genel Tanımlı Değişkenler (Environment Variables) :
    $_GET veya $HTTP_GET_VARS Form'dan GET metodu ile gönderilen veriyi alır
    $_POST veya $HTTP_POST_VARS Form'dan POST metodu ile gönderilen veriyi alır
    $HTTP_USER_AGENT Ziyaretçinin tarayıcı (browser) bilgisini verir
    $REMOTE_ADDR Ziyaretçinin IP adresini verir
    $REQUEST_URI Çalışmakta olan PHP dosyasının adını varsa GET metodu ile gönderilmiş değerleri verir
    $SCRIPT_FILENAME Çalışmakta olduğumuz PHP dosyasının ismini verir
    $SCRIPT_URI Çalışmak olduğumuz dosyanın tam adresini verir
    $SERVER_ADDR Sunucunun IP adresini verir
    $PHP_SELF Çalışmakta olduğumuz dosyayı ve dizini verir..
    Başka genel tanımlı değişkenlerde vardır bunları da kolayca internette bulabilirsiniz, fakat ilk başta bunlar yeterli olacaklardır.. Bunları normal değişkenler gibi kullanabiliriz.
    <?
    echo("Hoşgeldiniz.. IP Adresiniz : $REMOTE_ADDR");
    ?>
    Bu ekrana Hoşgeldiniz.. IP Adresiniz: 1.2.3.4 şeklinde bir sonuç basacaktır.
    Sabitler
    Değişkenler dışında sabitlerde tanımlayabiliriz, bunlar kodumuz içerisinden değiştiremediğimiz ve değiştirmeyeceğimiz değerlerdir.. define() fonksiyonu ile tanımlanmaktadır. Klasik örnek olarak PI sayısı verilmektedir, bende klasiği bozmayıp o örneği veriyorum.
    <?
    define("PI","3.14");
    echo(PI);
    ?>
    Ekrana 3.14 basılacaktır ve istediğimiz yerde PI değerini kullanabiliriz, birçok PHP yazılımında dil dosyaları bu tarz sabitlerle tanımlanmaktadır.
    Kısaca değişkenler bu kadar, global değişkenleri ileriki konularda anlatacağım. Matematiksel işlemleri anlattıktan sonra değişkenlerle ilgili fonksiyonları da anlatacağım..
    Bu fonksiyonları önceden gözatmak isterseniz..
    settype()
    gettype()
    isset()
    unset()
    empty()
    is_string()
    is_integer()
    is_double()
    intval()
    doubleval()
    doubleval()


    Bu konuyu http://forum.indir.com/web-tabanli-u...giskenler-109/ adresinde yenileyerek tekrar yazdım.
  • 07-07-2007, 10:27:41
    #2
    Üyeliği durduruldu
    Abi kafama takılan şu:

    EjdeR adlı üyeden alıntı: mesajı görüntüle
    <?
    $dersin_adi = "Matematik";
    echo("1. Dersin Adı : ");
    echo($dersin_adi);
    echo("<br>");
    $dersin_adi = "Türkçe";
    echo("2. Dersin Adı : ");
    echo($dersin_adi);
    ?>
    Burada 2 tane $dersin_adi değişkenini kullanmışsın...
    Sonra aynı değişkenlere Matematik ve Türkçe olmak üzere 2 atama yapmışsın...
    E bunlar aynı değişken nasıl oluyor da 2 tane farklı atama aynı değişkene yazıyor.
    Ayrıca array kullanıp da bunu yapabilir miyiz?
    Ve dediğim gibi tek değişkene 2 farklı atama yaparken değişkeni yazınca (echo ile) Matematik mi Türkçe mi olduğunu nasıl belirliyorsun ?
  • 07-07-2007, 12:47:46
    #3
    iznin ile abi ufak bi hata var onu belirtmek istiyorum
    <? 
    echo("Hoşgeldiniz.. IP Adresiniz : $REMOTE_ADDR); 
    ?>
    burada ise $REMOTE_ADDR"); şeklinde düzeltmeniz gerekiyor.
    Ayrıca benim anlamadığım bir yer var abi
    <? 
    $dersin_adi = "Matematik"; 
    echo("1. Dersin Adı : ".$dersin_adi."<br>"); 
    $dersin_adi = "Türkçe"; 
    echo("2. Dersin Adı : ".dersin_adi); 
    ?>
    bu komutta nasıl 2 değişkeni de aynı iş için kullanabiliyoruz,ayrıca ".dersin_adi); bu şekilde mi yoksa bu şekilde mi ".$dersin_adi."); yazılıyor.
    Teşekkürler...
  • 07-07-2007, 13:01:22
    #4
     
     
    <?  
    $dersin_adi = "Matematik";  
    echo("1. Dersin Adı : ".$dersin_adi."<br>");  
    $dersin_adi2 = "Türkçe";  
    echo("2. Dersin Adı : ".$dersin_adi2);  
    ?> 
  • 07-07-2007, 13:04:07
    #5
    Misafir
    ".dersin_adi); dogrusu bu ..Anladığım kadarıyla

    ".dersin_adi."bu şekilde olabilir"); ekrana dersin adını yazar peşinede bu şekilde olabilir yazar...
    doğru anladıysam böyle olmalı...
  • 07-07-2007, 13:52:06
    #6
    oktay adlı üyeden alıntı: mesajı görüntüle
    iznin ile abi ufak bi hata var onu belirtmek istiyorum
    <? 
    echo("Hoşgeldiniz.. IP Adresiniz : $REMOTE_ADDR); 
    ?>
    burada ise $REMOTE_ADDR"); şeklinde düzeltmeniz gerekiyor.
    Ayrıca benim anlamadığım bir yer var abi
    <? 
    $dersin_adi = "Matematik"; 
    echo("1. Dersin Adı : ".$dersin_adi."<br>"); 
    $dersin_adi = "Türkçe"; 
    echo("2. Dersin Adı : ".dersin_adi); 
    ?>
    bu komutta nasıl 2 değişkeni de aynı iş için kullanabiliyoruz,ayrıca ".dersin_adi); bu şekilde mi yoksa bu şekilde mi ".$dersin_adi."); yazılıyor.
    Teşekkürler...
    hata o değil hata
    <? 
    echo("Hoşgeldiniz.. IP Adresiniz : ".$REMOTE_ADDR); 
    ?>
    şeklinde düzeltilmeli. ayrıca ejder abi sanırım değişkenleri iki şekilde de kullanabilecegimizi belirtmiş .dersin_adi ve .$dersin_adi diyerek
  • 07-07-2007, 13:54:36
    #7
    ayrıca kodları dogru yazdıgınızı php bbcode u içine aldıgınızda renklerdende anlayabilirsiniz. fonksiyonlar yeşil; değişkenler mavi; tırnaklar ve içindeki yazılar kırmızı olarak çıkmalı. tabi eger dogru yazıldıysa
  • 07-07-2007, 16:11:29
    #8
    Kimlik doğrulama veya yönetimden onay bekliyor.
    tolgalex adlı üyeden alıntı: mesajı görüntüle
    Abi kafama takılan şu:
    Burada 2 tane $dersin_adi değişkenini kullanmışsın...
    Sonra aynı değişkenlere Matematik ve Türkçe olmak üzere 2 atama yapmışsın...
    E bunlar aynı değişken nasıl oluyor da 2 tane farklı atama aynı değişkene yazıyor.
    Ayrıca array kullanıp da bunu yapabilir miyiz?
    Ve dediğim gibi tek değişkene 2 farklı atama yaparken değişkeni yazınca (echo ile) Matematik mi Türkçe mi olduğunu nasıl belirliyorsun ?
    evet bende onu inceliyodum fark varmı diye ama yok. heralde ufak bi yanlış var. eline sağlık bu ders de güzel ve açıklayıcı olmuş.
    birde php kodları yazarken hangi programı önerirsiniz?
    son olarak şu şekilde yazmak daha anlaşılır değilmi okunus olsun görünüş olsun;
    <?
    $iyiders = "Beden Eğitimi";
    $kotuders = "Matematik";
    echo("en sevdigimiz ders: ");
    echo($iyiders);
    echo("<br>");
    echo("en sevmediğimiz ders: ");
    echo($kotuders);
    ?>
    --
    en çok hangi tarz kullanılıyor onuda merak ettim.
  • 07-07-2007, 16:49:37
    #9
    arkadaşlar orada bir değişkene başka bir değişken atamış ejder abi. onu farklı bir şekilde de yapabilirdi ama bu sekilde daha basit diye bu sekilde yapmış. bir deişkene farklı değerler atayabiliyorsunuz. karmaşık halide şu şekilde oluyor


    $birinci_ders  = "Matematik";
    $ikinci_ders = &$birinci_ders;
    $birinci_ders = "Türkçe";
    echo $ikinci_ders;
    oradaki & işareti deger değişiminin dinamik oldugunu gösterir. o deger olmasaydı dinamik olmayacaktı durgun olacaktı