forumxtr adlı üyeden alıntı: mesajı görüntüle
Basitçe veritabanı işlemleri için kullandığım şu şekilde bir değişken ($db) var;

class User {
    public $db;
    
    public function __construct() {
        $db = new DataHandle('users');
    }
    
    public function create($data) {
        $this->db->ekle($data);
        // data dizisi $_POST'tan temizlenip geliyor ve form eleman isimleri veritabanı kolonu adlarıyla aynı.
    }
}
Burda da görüldüğü gibi $db değişkenini $this->db şeklinde kullanıyorum (kullanmak zorundayım).

- Bunu direkt $db olarak kullanma imkanım yok mu? Yoksa neden yok? public, global vs. olması ile mi alakalıdır?

- Değişkenin veya fonksiyonun public veya private olmasının farkı nedir? Sınıf dışından erişimin olmaması gibi kısıtlamalar olduğunu biliyorum ama bunu nerede kullanabilirim, ufak bir örnekle açıklarsanız sevinirim.

- Bu sorum biraz karışık ve konunun biraz dışında. Bir mysql database sınıfı ve bir data handle sınıfı oluşturdum. data handle sınıfı ekle/düzenle/güncelle/sil gibi basit işlemleri hallediyor. Bu sınıfla yeni nesne oluştururken şu şekilde kullanıyorum; new DataHandle('tabloadi');. Bu nesne ile sadece "tabloadi" tablosundaki verilerle uğraşıyorum. Diğer tablolar için başka nesneler oluşturuyorum. Bu performans açısından sağlıklı mıdır? Yoksa tek nesne oluşturup sınıf içinde kullanacağım fonksiyonlara tablo adı belirterek mi devam etmeliyim?

Biraz fazla oldu ama buralarda bunları bilen insanlar olduğuna inanıyorum

Edit: Başlıkta yanlışlık olmuş, özür dilerim. "Sınıfta" şeklinde düzeltilebilir.
kullanımınız yanlış. $db olarak da kullanabilirsiniz sınıf dışında değişkene atayın.
public : sınıf dışında içinde her yerden erişebilirsin
private : sadece sınıf içinde erişebilirsin
protected : sınıflar arasında erişebilirsin

ayrıca kafan bayağı bir karışmışa benziyor