• 28-11-2007, 04:40:00
    #1
    Kurumsal PLUS
    Öncelikle şunu belirteyim. Hani olur ya, localde çalışan kod sunucuda çalışmaz, ya da php versiyon güncellenir eskiden çalışan kodlar çalışmaz filan, PHP Standartlarında Kodlama serisini bu yüzden yazmaya karar verdim, php.net standartlarına göre en uygun, en standart kodlamayı yapmanın püf noktalarını anlatmak için. Aklıma geldikçe ve vakit buldukça en çok yapılan hataları ve en doğru kullanımları anlatıcam.

    Bir değişkeni tanımlarken fazla ne detay olabilir diyebilirsiniz. Fakat php.net der ki, eğer tanımlanan değişken bir sayıysa, bunu tanımlarken tırnak kullanmamalıyız.
    $degisken = 556456;
    gibi.

    Harf ya da bir metin tanımlarken, tırnaklar kullanırız, açılış/kapanış tırnağının aynısı tanımladığımız metnin içinde geçiyorsa önüne \ koyarız. Peki, " ya da ' kullanılabiliyorken, hangisini nerede kullanmalıyız?
    $bartuc = 'cihan';
    $degisken = 'sadasd dasdasdas $bartuc';
    şeklinde kullandığımızda ve bunu echo yaptırdığımızda, sayfaya aynen sadasd dasdasdas $bartuc şeklinde basılır. Fakat;
    $bartuc = 'cihan';
    $degisken = "sadasd dasdasdas $bartuc";
    kullandığımızda, sayfaya basılan şey aynen sadasd dasdasdas cihan olacaktır. Yani, ' kullanıldığında içindeki değişkenler değişken olarak algılanmaz ve sayfaya aynen basılır, " kullanıldığında ise değişkenler okunur.
    Eğer;
    $bartuc = 'cihan';
     $degisken = "sadasd dasdasdas \$bartuc";
    şeklinde, çifttırnak içinde $ değişken tanımlama karakterimizi \ ile birlikte kullanırsak, tek tırnaktan farkı kalmayacak ve değişkeni algılamadan basacaktır.
    Peki, çift tırnak içinde değişken kullanmak sağlıklı mıdır? Çalışacak da olsa, sağlıklı değildir. Kullanılması gereken en sağlıklı format, yazdığımız metinler ile değişkenleri birbirinden . karakteri ile ayırmaktır. yani;
      $degisken = "sadasd dasdasdas $bartuc";
    ve;
       $degisken = "sadasd dasdasdas ".$bartuc; //ya da
       $degisken2 = "sadasd dasdasdas ".$bartuc." sadasdsa dasdasd ".$bartuc2." dasdasd";
    aynı işi göreceklerdir ama, alttaki kullanım biçimi daha sağlıklıdır, olması gereken budur. Peki çok karışık bir kod yazıyorsanız ve bütün değişkenleri tek tek böyle ayırmak istemiyorsanız veya ayırarak bir sonuca varamıyorsanız ne yapacaksınız? sprintf() fonksiyonu burada yardımımıza yetişiyor. Basit bir örnekle bu fonksiyonun kullanımını anlatacağım.
    $tanim1 = "kere";
    $tanim2 = "dört";
    $tanim3 = "beş";
    $degisken = "iki $tanim1 iki $tanim2 eder. üç ya da $tanim3 değil.";
    yerine;
    $tanim1 = "kere";
    $tanim2 = "dört";
    $tanim3 = "beş";
    $degisken = sprintf("iki %s iki %s eder. üç ya da %s değil.", $tanim1, $tanim2, $tanim3);
    kullanmak daha sağlıklı olacaktır. Peki burada tam olarak ne yaptık?
    sprintf fonksiyonunda ilk parametre, tanımlanacak olan metindir. bu metinin içindeki değişkenleri %s karakteri ile değiştiririz. tırnağımızı kapatıp virgülümüzü koyduktan sonra, yani ilk parametreyi bitirdikten sonra, sırasıyla yerleştirdiğimiz %s'lerin yerlerine hangi değişkenler gelecekse ayrı parametreler halinde ekleyerek parantezimizi kapatıp fonksiyonu sonlandırırız.

    Tanımladığımız bir değişkeni sayfaya bastırırken de aynı kurallar geçerlidir. Unutulmamalı ki, hiçbir değişken, doğrudan sayfaya kod halinde basılmayacağı sürece, tırnak içinde kullanılmamalıdır.
    echo "$cihan";
    ve;
    echo $cihan;
    aynı işi yapsalar da, kullanmak için alttaki seçilmelidir.

    Değişken tanımlamada aklıma gelenler şimdilik bunlar, daha aklıma gelirse bu konuya eklerim. Daha sonra vakit bulduğumda ise session'lardan bahsedicem.
  • 28-11-2007, 12:24:38
    #2
    Çok teşekkür ederim , php ekşınlarınızın devamının geLmesi dileği iLe.
  • 02-02-2008, 14:15:03
    #3
    Üyeliği durduruldu
    if ve else lere geçiş yapalım. nasıl olur ? : )
    şu an biraz ileriye geçtim bakarak yazıyorum ve hatta anlıyorum.
    ama yavaş yavaş anlayarak yazmak daha iyi oluyor.şu an biraz ilerledim php'de
  • 05-02-2008, 08:33:40
    #4
    Üyeliği durduruldu
    Nettek adlı üyeden alıntı: mesajı görüntüle
    if ve else lere geçiş yapalım. nasıl olur ? : )
    şu an biraz ileriye geçtim bakarak yazıyorum ve hatta anlıyorum.
    ama yavaş yavaş anlayarak yazmak daha iyi oluyor.şu an biraz ilerledim php'de
    https://www.r10.net/php/73449-php-eksin.html
    burada değişkenler var hemen değişken tanımlarının altında if else hakkında var bakabilirsiniz
  • 05-02-2008, 10:45:35
    #5
    Üyeliği durduruldu
    saho adlı üyeden alıntı: mesajı görüntüle
    https://www.r10.net/php/73449-php-eksin.html
    burada değişkenler var hemen değişken tanımlarının altında if else hakkında var bakabilirsiniz
    teşekkürler.
    yanlız orada kullanılan if ve else komutları biraz farklı geldi bana
    her yerde farklı method'larla anlatıldığı için insanın kafası karışıyor
  • 05-02-2008, 13:04:40
    #6
    Üyeliği durduruldu
    bu konu üzerinden birisi bana REP göndermiş.
    ama + rep mi , - REP mi anlamadım
    bir de altında: keyfine rep [: diye bir not bırakmış : )
    nedir bu anlamadım...
  • 05-02-2008, 14:01:34
    #7
    Üyeliği durduruldu
    ben göndermedim ama yeşil ise + beyazımsıysa etkisiz kırmızıysa eksi rep tir
  • 05-02-2008, 14:20:22
    #8
    Üyeliği durduruldu
    saho adlı üyeden alıntı: mesajı görüntüle
    ben göndermedim ama yeşil ise + beyazımsıysa etkisiz kırmızıysa eksi rep tir
    valla gri renkli..
    hani yanlışlıkla vermişlerdir diye düşündüm.
    çünki bu makalenin sahibi ben değilim : )
    normal şartlarda rep vermeleri lazımdı diye düşünüyordum ama benim düşündüğüm gibi değilmiş.biri alay etmiş kendince.
    neyse konu dağılmasın özür dilerim
    bu arada sana tekrar soru soruyorum.
    şimdi if ve else leri öğrendim.
    arkadaşın biri switch ve case leri öğren dedi

    switch ($actual_location)
    {
            case '/about/author':
                    $style['THEME'] = 'aboutfaruk';
                    break;
            case '/about/geckoskin':
                    $style['THEME'] = 'aboutgecko';
                    break;
            case '/about/site':
                    $style['THEME'] = 'aboutsite';
                    break;
            case '/about/origins':
                    $style['THEME'] = 'abouthistory';
                    break;
    }
    bir siteden buldum buna benzer birşeyler.
    ama bunların mantığı nedir nerede kullanılır (link uzantıları için kullanıldığını çözdüm ama )
    gibi konu anlatabilir misin ?
    teşekkürler...
  • 05-02-2008, 16:27:42
    #9
    Üyeliği durduruldu
    switch ($actual_location)
    {
    case
    '/about/author':
    $style['THEME'] = 'aboutfaruk';
    break;
    case
    '/about/geckoskin':
    $style['THEME'] = 'aboutgecko';
    break;
    case
    '/about/site':
    $style['THEME'] = 'aboutsite';
    break;
    case
    '/about/origins':
    $style['THEME'] = 'abouthistory';
    break;
    }
    -------
    bu mesala if else olarak
    if(
    $actual_location=='/about/origins') {
    $style['THEME'] = 'abouthistory';
    } elseif(
    $actual_location=='/about/site') {
    $style['THEME'] = 'abouthistory';
    }
    gibi gibi alt alta
    } elseif($x=='aaa') {
    $style=...
    }
    düzerek gidersin
    birde en sonuna
    } else {
    ......
    ...
    ..
    }
    bunun yerinede
    default:
    ...
    ....
    ..
    break;

    gibi yapıyorsun hiç bir eşitlik yoksa yada case"xx": ler ile tanımlanmış birşey yoksa default ta veriyorsun if deki örnek gibi anlamışsındır umarım karmaşık olduysa daha detaylı bir örnek vereyim