Php Ekşin
73
●16.941
- 28-06-2010, 11:17:53Bu ara bunalım takılıyorum da ondandır. Ters anlıyorum her şeyi..saho adlı üyeden alıntı: mesajı görüntüle
- 28-06-2010, 22:51:19Üyeliği durduruldu
- 30-06-2010, 11:42:55Bende OOP öğrenmeye çalışanlar için temel bir ders paylaşayım.

# "uye" isminde sınıf tanımlıyoruz. Class uye { # "ad" isminde sadece bu sınıf içinde değer atanabilecek değişken tanımlıyoruz. private $ad; # "soyad" isminde sadece bu sınıf içinde değer atanabilecek değişken tanımlıyoruz. private $soyad; # Sınıf ilk çağırıldığında çalışacak "__construct" fonksiyonumuzu oluşturuyoruz. function __construct($ad = '', $soyad = '') { # Bu sınıfın içinde ki "ad" isimli değişkene değer atıyoruz. $this->ad = $ad; # Bu sınıfın içinde ki "soyad" isimli değişkene değer atıyoruz. $this->soyad = $soyad; } # Geriye "ad" ve "soyad" değişkenlerinin değerini döndürecek fonksiyonumuzu oluşturuyoruz. public function bilgiler() { return 'Ad - Soyad : ' . $this->ad . ' ' . $this->soyad; } } # Oluşturduğumuz sınıfı tanımlıyoruz. __construct kısmında tanımladığımız $ad ve $soyad'a değerleri yolluyoruz. $uye = new uye('İbrahim','HIZLIOĞLU'); # "uye" sınıfının içinde ki "bilgiler" fonksiyonunda dönen değeri ekrana basıyoruz. echo $uye->bilgiler(); - 10-07-2010, 15:51:14Konu harbiden mükemmel olmuş ya, saho çok sağol. Bende yeni başladım php'ye döngüler felan bişeyleri kavradım az çokta sen uçmuşsun resmen konuyu çok süper anlatmışsın yalnız. Ard arda atlamalar fena.

süper ya.Alıntı
- 10-07-2010, 15:59:15saho hocam şimdi bir sorum olacak yaptığımız sınıfların daha sade ve güvenli olması için değişkenlere sınıf dışından erişimleri engelliyoruz ya bu değişkenlere değer atamak veya değer almak için ;
public function __set ( $varname, $value ) { $this->$varname = $value; } public function __get ($varname) { return $this->varname; }bu fonksiyonları kullansak daha iyi olmaz mı ? kod fazlalıklarını engellemiş olmaz mıyız ? yoksa bunlarında eksikleri olduğu için mi yaygın olarak kullanılmıyor - 14-07-2010, 17:34:40Üyeliği durduruldu@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...
