Php dilinde nesne programlama kurallarına göre kodlama yaparken karşımıza çıkacak en önemli nokta, sınıf öğelerinin erişim düzeylerini belirleme süreçleri olacaktır.
Temel kullanımda 5 tür erişim düzeyi bulunmaktadır.
- Public : Sınıfın içinden , sınıftan türetilen diğer sınıflardan ve sınıf dışından erişilebilen method ve argumanlardır.
- Private: Oluşturulduğu sınıf içinden erişilebilen, ancak sınıf dışından veya sınıftan türetilen diğer sınıflardan erişelemeyen arguman ve methodlardır .
- Protected: Oluşturulduğu sınıf içerisinden ve sınıftan türetilen diğer sınıflardan erişilebilen, ancak sınıf dışından doğrudan erişilemeyen method ve argumanlardır.
- Static: Oluşturulduğu sınıf içerisinden, sınıf dışından erişilebilen argumen ve methodlardır.
- Final: Tüm sınıfların başında tanımlanır. Özellikle modül geliştirenler için, koruma amaçlı olarak kodların çalışma sürecinde oluşabilecek sorunların önüne geçmek için kullanılır.
Public erişimine örnek
class kisi
{
public function AdSoyad($ad,$soyad)
{
echo “Adınız : $ad Soyadınız : $soyad”;
}
}
$kisi = new kisi();
$kisi->AdSoyad(“sarper”,”arıkan”);
//Yukarıda public erişimli bir method tanımlanmıştır.
//Public erişimli olarak tanımlanan method bir başka adıyla fonksiyon dışarıdan erişilebilir durumdadır.
//Şimdide aşağıda sınıfın argumanları olarak ad ve soyad öğelerini tanımlayalım.
class calisan
{
public $ad = “sarper”;
public $soyad = “arıkan”;
//$ad ve $soyad isminde iki adet arguman tanımladık.
public function yaz()
{
echo “Çalışan Adı : $this->ad Çalışan soyadı : $this->soyad”;
//$this->ad ve $this->soyad şeklinde yukarıdaki argumanlarımızı fonksiyonumuzda kullandık
}
}
echo “
“;
$calisan = new calisan();
$calisan->yaz();
//En son aşamada çalışan ismindeki sınıfımızın yaz methodunu çağırdık
Private erişimine örnek
class uye
{
private function bilgileri_goster($t_c)
{
echo $t_c;
}
}
$uye = new uye();
$uye->bilgileri_goster(“123456789”);
//Yukarıdaki örnekte private olan bir method çağrıldığı için hata verecektir.
class uye
{
private function bilgileri_goster($t_c)
{
echo $t_c;
}
public function yaz($t_c)
{
self::bilgileri_goster($t_c);
//Burada self sözcüğünü kullandık ve private olan önceki methodu çağırabildik.
/*Private olan methodumuz için public şekilde ekrana basmak adına başka bir method oluşturup tıpkı bilgileri göster methodunda bulunan bir adet parametre değerine karşılık gelecek şekilde public olan methodumuzda da oluşturmuş olduk.*/
}
}
$uye = new uye();
$uye->yaz(“123456789”);
//Önceki örneğimizin çalışan hali
//Burada bir adet parametreli public methodu oluşturduğumuz için, private olan methodumuzu da çağırmış olduk.
Protected erişimine örnek
class araba
{
protected function plaka()
{
echo “07 uyg 123”;
}
}
class plakaBilgisi extends araba
{
function __construct()
{
parent::plaka();
}
}
$pplaka = new plakaBilgisi();
//Plaka ismindeki ilk sınıfımızda bulunan protected erişimli methodu, sonrasında extends anahtar sözcüğüyle ikinci bir sınıf oluşturarak içerisinde parent koduyla kullandık.
//Bu arguman olarak karşımıza çıksaydı o zaman self veya $this anahtar sözcüğüyle çağırmamız gerekecekti.
Static erişimine örnek
class misafir
{
public static $isletme = “Uygulama Oteli”;
function yaz()
{
echo self::$isletme;
}
}
echo misafir::$isletme;
//Yukarıdaki örnekte işletme argumanımızı doğrudan çağırabildik.
//Burada static olarak tanımlanan bir argumanı $ ifadesiyle başlayarak çağırdığımızı görmüş olduk.
//Bununla birlikte bir yöntemle daha örneğimizdeki static argumanımızı çağırmamız mümkün olmakta. Sizce başka nasıl çağırabileceğinizi bir değerlendirin.
Final kullanımı
Final kullanımı koruma amacıyla oluşturulmuş bir sınıftır. Final türünde bir sınıftan başka bir sınıf oluşturulamaz, ancak bir başka sınıftan final oluşturulabilir.
class a
{
public function yaz()
{
echo “Sınıf çağrıldı”;
}
}
final class b extends a
{
public function yaz()
{
echo “Sınıflar sona erdi”;
}
}