• 25-06-2010, 10:48:34
    #1
    Selamlar arkadaşlar,

    php yeni yeni öğrenmeye başladım ve takıldığım bir konu üzerinde sizlere danışmak istedim..

    Durum şu:

    class GameController
    {
     function PlayingNow($user_id)
      {
        global $db;
        $row = $db->GetRow("SELECT *  FROM game WHERE user=$user_id ORDER BY game_id DESC LIMIT 1");  
        ıf(!$row['game_id']) {
        $row = $db->GetRow("SELECT  * FROM game WHERE opponent=$user_id ORDER BY game_id DESC LIMIT 1");
        $this->game_id = $row['game_id'];
    	}
    	
      }	
    }
    Yukarıdaki gibi bir sınıfım var.

    Şu şekilde sınıfı çağırabilirim
    $GameController = new GameController();
    Şu şekilde ise sınıf içindeki fonksiyonu çağırabilirim:
    $GameController->PlayingNow();
    Fakat en yukardaki bu değişkeni nasıl çağırırım?
    $this->game_id
    Şimdiden teşekkürler.
  • 25-06-2010, 10:59:02
    #2
    Üyeliği durduruldu
    sinif icerisinde cagirmak icin fonksiyon static degilse this operatorunu kullanabilirsiniz

    $this->PlayingNow();
    seklinde
  • 25-06-2010, 11:13:41
    #3
    Evet fakat, tam olarak şunu yapamıyorum:

    Mesela PlayingNow() fonksiyonu icerisindeki

    $this->game_id = $row['game_id'];
    bu değişkeni çağıramıyorum..
  • 25-06-2010, 11:13:45
    #4
    Eposta Aktivasyonu Gerekmekte
    Süleyman hocam ben $this->game_id bu değişkeni nasıl çağırırım diye anladım, bilmiyorum doğrumu anlamışım.

    Doğru anlamışsam method dışında, class içinde tanımlanmış vede public olması lazım.
    $GameController->game_id; olarak çağırabilirsin.
  • 25-06-2010, 11:22:10
    #5
    Cevabın için teşekkürler, peki değişkenin mi public olması lazım? Yoksa fonksiyonun mu?

    public $this->game_id
    ?
    public function PlayingNow($user_id)
    ?
  • 25-06-2010, 11:27:52
    #6
    Eposta Aktivasyonu Gerekmekte
    Dışardan neye erişmek istiyorsan onu public olarak tanımlaman lazım. game_id değişkenine erişmek istiyorsun onu public olarak tanımlaman lazım.

    Ancak public $this->game_id; olarak değil
    $game_id olarak ilk nerede tanımlanmış ise onu public yapman lazım.

    public $game_id; gibi
  • 25-06-2010, 12:51:11
    #7
    NiZZo_ adlı üyeden alıntı: mesajı görüntüle
    Dışardan neye erişmek istiyorsan onu public olarak tanımlaman lazım. game_id değişkenine erişmek istiyorsun onu public olarak tanımlaman lazım.

    Ancak public $this->game_id; olarak değil
    $game_id olarak ilk nerede tanımlanmış ise onu public yapman lazım.

    public $game_id; gibi
    Arkadaşımız çok doğru söylemiş. private veya public gibi özel veya yerel tarzında tanımlama gerekir, eğer değişken public değilse sınıf dışında gerekli değişkeni kullanamazsınız.
  • 26-06-2010, 05:43:09
    #8
    Üyeliği durduruldu
    degiskenleri protected yap bu sekilde degiskenleri alt siniflarda kullanabilirsin. Disaridan kullanim icinse degiskenlerle yapacagin isleme göre set ve get kullan