• 30-04-2020, 18:25:56
    #1
    <?php
    /**
    * bune
    */
    class bune
    {
        
        function saf () {
            
    $randlar[0] = 'x1';
    $randlar[1] = 'x2';
    $randlar[2] = 'x3';
    $randlar[3] = 'x4';
    
    
        }
    
        function baba () {        
            echo $this->saf();
        }
        function  salak (){        
            echo $this->saf();
    
        }
    }
    
    $saf = new bune();
    echo $saf->baba();
    echo $saf->salak();
    ?>
    çıktısı x1 ve x2 değeri çıkıyor fakat ben ikisindede aynı değeri çıkmasını istiyorum bir türlüaklımda gelmiyor nasıl yapcam.
  • 30-04-2020, 18:42:14
    #2
    <?php
    /** * bune */
    class bune
    {
        private $rand;
        private $degerler = ['x1','x2','x3','x4']; 
    
       public function __construct() 
       { 
           $this->rand = $this->degerler[rand(0, count($this->degerler) - 1)];
        }
    
        public function baba()
        {        return $this->rand;
        } 
    
       public function salak()
        {
            return $this->rand;
        }
    }
    
    $saf = new bune();
    echo $saf->baba();
    echo $saf->salak();
  • 30-04-2020, 18:51:28
    #3
    Abdullahx adlı üyeden alıntı: mesajı görüntüle
    <?php
    /** * bune */
    class bune
    {
        private $rand;
        private $degerler = ['x1','x2','x3','x4'];
    
       public function __construct()
       {
           $this->rand = $this->degerler[rand(0, count($this->degerler) - 1)];
        }
    
        public function baba()
        {        return $this->rand;
        }
    
       public function salak()
        {
            return $this->rand;
        }
    }
    
    $saf = new bune();
    echo $saf->baba();
    echo $saf->salak();
    private $rand;
    neden kullandınız.
  • 30-04-2020, 18:55:41
    #4
    Sınıf başlatıldığı anda rastgele değeri içinde tutan ve sadece sınıf içinden erişilebilen bir değişken olması için. rastgele değeri sınıf başlatıldığı anda alıp kaydediyor, böylece sonradan değişmiyor. public olsaydı dışarıdan da çağırıp kullanabilirdiniz.
    yani dışarıda sınıf başlatıldıktan sonra
    echo $saf->rand;
    yazsaydınız da aynı sonucu alırdınız.