• 11-11-2009, 18:37:01
    #1
    selamlar bir sorum var.

    $degisken = "içerik";
    
    function {
    echo $degisken;
    }
    bu kod function içinde global değişken çağrılmadığından ekrana birşey çıkartmıyor.

    $degisken = "içerik";
    
    function {
    echo $GLOBALS[degisken];
    }
    Bu kod global bir değişken tanımlamadan ekrana globals dizisinden bir eleman yani global bir değişken çıkartıyor.

    Bana lazım olan ise en tepede değişkeni tanımlarken tüm functionlar içinde default olarak sadece değişken adı ile kullanım yapmak. Yani ilk koddaki function çalışsın istiyorum. Nasıl bir tanımlama yapmalıyım bilen var mı ?
  • 11-11-2009, 18:50:08
    #2
    Eposta Aktivasyonu Gerekmekte
    function blabla
    {
        global $degisken1, $degisken2, $_POST;
    şeklinde fonksiyondaki tüm değişkenleri girmelisin.
  • 11-11-2009, 18:53:15
    #3
    <?php
    
    $degisken = "içerik";
    
    function zz(){
    echo $GLOBALS['degisken'];
    }  
    
    zz();
    bu kodun çıktısı
    içerik


    globals in print_r çıktısı


    Array
    (
        [GLOBALS] => Array
     *RECURSION*
        [_POST] => Array
            (
            )
    
        [_GET] => Array
            (
            )
    
        [_COOKIE] => Array
            (
            )
    
        [_FILES] => Array
            (
            )
    
        [degisken] => içerik
    )
  • 11-11-2009, 21:18:31
    #4
    BiggBoss35 adlı üyeden alıntı: mesajı görüntüle
    function blabla
    {
        global $degisken1, $degisken2, $_POST;
    şeklinde fonksiyondaki tüm değişkenleri girmelisin.
    haliyle girmeyliyim evet ama girmeden $degisken1, $degisken2 gibi değişkenleri özel bir tanımlama metodu ile function içinde direkt kullanabiliyor muyum ? sorduğum bu aslında.
  • 11-11-2009, 21:23:12
    #5
    Üyeliği durduruldu
    zee adlı üyeden alıntı: mesajı görüntüle
    haliyle girmeyliyim evet ama girmeden $degisken1, $degisken2 gibi değişkenleri özel bir tanımlama metodu ile function içinde direkt kullanabiliyor muyum ? sorduğum bu aslında.
    define ile sabit tanimli ise kullanabilirsin

    define("armut","1",true);
    function deneme(){
           echo armut;
    }
    bu şekilde define ile tanimlayinca class içindede sorunsuz kullanabilirsin. Bunun haricinde global ifadesinden başka seçenek yok
  • 11-11-2009, 22:21:33
    #6
    sabit tanımlamalarına objeler girmiyor malesef. apache için setenv kullanımı var ama o da sabit tanımlamaktan farksız ve hala $_SERVER içinde ama onun gibi global nesne olmuyor.

    anladığım kadarıyla nedeni register global ile güvenliği sağlamak ve değişken kapsamlarının sınırlarını sağlıklı çizmek için izin verilmemiş.

    teşekkürler herkese...
  • 12-11-2009, 08:49:14
    #7
    Üyeliği durduruldu
    zee adlı üyeden alıntı: mesajı görüntüle
    sabit tanımlamalarına objeler girmiyor malesef
    sabit tanimlarina objelerdende erişebiliyorsun dostum. Örnek;

    <?php
    define('armut',123);
    class Deneme{
        public function getir(){
            echo armut;
        }
    }
    $deneme = new Deneme();
    $deneme->getir();
    ?>
  • 12-11-2009, 14:25:48
    #8
    senin örnekteki $deneme bir sabit olarak tanımlanıp global şekilde kullanılamıyor demek istedim. scalar variable hatası veriyor.
  • 12-11-2009, 16:03:16
    #9
    Üyeliği durduruldu
    pardon class i fonksiyon içerisinden erişmek isteniyormuş. global haricinde yada parametre olarak gönderme haricinde mümkün degil