30.10.2011, Saat: 16:13
Php İle Class Özellikleri
Protected özelliği atanan bir değişken veya metot ise sadece sınıf içerisinden veya türetilen bir sınıf içerisinden erişim hakkına izin verir. Yani kullanıcı başlattığı sınıf içindeki protected tanımlı değişken veya metotlara asla erişemez.
Örnek ;
Yukarıdaki örneği çalıştırdığımızda ekrana “Cannot access protected property..” diye hata çıktısı verecektir. Bunun sebebi classı başlatıp ardından da protected özelliği atanmiş değişkeni çağırmak istememizden dolayıdır. Ancak echo $a->isim; satırını silersek ekrana bu sefer $isim içeriğini yazacaktır.
Neden hata vermiyor gibi bir düşünce gelebilir aklınıza ama ne demiştik protected veya private tanımlı bir değişken veya metot sadece sınıfın kendi içinden çağrılabilir dolayısıyla public tanımlanmış isimGetir() metodu sınıfın içinde olduğu için $isim değişkenine bu metot sayesinde erişmiş oluyoruz. Böylece classı kullanacakların classı olumsuz etkilemesinden korumuş oluyoruz.
Protected özelliği atanan bir değişken veya metot ise sadece sınıf içerisinden veya türetilen bir sınıf içerisinden erişim hakkına izin verir. Yani kullanıcı başlattığı sınıf içindeki protected tanımlı değişken veya metotlara asla erişemez.
Örnek ;
Kod:
view source
print?
01 < ?php
02 class a
03 {
04 protected $isim = 'yusuf';
05
06 public function isimGetir()
07 {
08 echo $this->isim;
09 }
10 }
11
12 $a = new a;
13 echo $a->isim;
14 echo '';
15 $a->isimGetir();
16 ?>
Yukarıdaki örneği çalıştırdığımızda ekrana “Cannot access protected property..” diye hata çıktısı verecektir. Bunun sebebi classı başlatıp ardından da protected özelliği atanmiş değişkeni çağırmak istememizden dolayıdır. Ancak echo $a->isim; satırını silersek ekrana bu sefer $isim içeriğini yazacaktır.
Neden hata vermiyor gibi bir düşünce gelebilir aklınıza ama ne demiştik protected veya private tanımlı bir değişken veya metot sadece sınıfın kendi içinden çağrılabilir dolayısıyla public tanımlanmış isimGetir() metodu sınıfın içinde olduğu için $isim değişkenine bu metot sayesinde erişmiş oluyoruz. Böylece classı kullanacakların classı olumsuz etkilemesinden korumuş oluyoruz.