@webengineer rica ederim şekerim (:
+
c# zaten en iyi oop lardan java ile birlikte onda da kullanılıyor
c# :
String veri ;
public String Veri() {
set { veri = value;}
get { return veri; }
}
c# da method bazlı yapılıyor bu işlemler ama php de tüm değişkenleri kapsıyor
bu haliyle kullanmak biraz mantıksız çünki
sen yukarıda istediğin kadar private protected tanımla değişkenleri __set __get sınıfında olduğu sürece onun üzerinde her türlü değişikliği yapabilirler.

programın bozulmaması için set kullanılmamalı sabit kalması gereken değişkenler olabilir ama adı bilindiğinde dışarıdan her türlü set get edilebilir.

Bu super methodlar nasıl kullanılabilir ? Daha güvenli hale getirilirek
c# da sadece o method için set-get kullanıdırılabiliyor yada sadece birisi burada da öyle yapılabilir
class a {
    $yetkilerSet = array('adi','soyadi','maili','sifresi'); // temaDizini set edilemez 
    $yetkilerGet = array('adi','soyadi','temaDizini'); // mail ve şifre get edilemez , ama temadizini edilebilir
    public function __set ( $varname, $value )
    {
        if(!in_array($varname,$yetkilerSet)) return false;
        $this->{$varname} = $value;
    }
    public function __get ($varname)
    {
        if(!in_array($varname,$yetkilerGet)) return false;
        return $this->{$varname};
    }  
}
gibi kullanılabilir sanırım anlaşılmıştır.
kullanıcının şifresi set edilebilir ihtiyaç halinde ama hiç bir zaman get edilmemeli mesala
temaDizini de get edilebilir ihtiyaç olacaktır ama hiç bir zaman set edilmemli programın çalışması bozulabilir...