Nesne tabanlı programlama (OOP); yazılım tasarımını işlevler ve mantık yerine, veri veya nesneler etrafında düzenleyen bir programlama dili modelidir. Günümüzde yazılım geliştirme teknolojileri içerisinde büyük bir önem taşır. Php'de kısaca fonksiyonlarımızı bir class(sınıf) içerisinde gruplayarak daha derli toplu ve işlevsel hale getirebildiğimiz bir yöntemdir.
Sınıflar aşağıda ki gibi türetilir.
class viptema {
//Fonksiyonlarımız bu aralıkta yer alacak.
}
Sınıf isimleri byük küçük harfle başlayabilir. Sınıflar aynı sayfada aşağıda ki gibi çağrılır.
$viptema = new viptema();
Sınıflarda __construct kullanımı
class viptema {
public function __construct(){
echo "Bu benim varsayılan olarak çalışan ilk fonksiyonum <br>";
}
public function yas($yas){
echo $yas;
}
}
$viptema = new viptema();
$viptema->yas(35);
//Çıktı:
//Bu benim varsayılan olarak çalışan ilk fonksiyonum
//35
Yukarıdaki örnekte yas fonksiyonunu çalıştırdık ancak varsayılan olarak __construct fonksiyonumuz da class içerisinde ilk çalışan fonksiyonumuz olmuş oldu.
Sınıflarda __destruct kullanımı
class viptema {
public function __construct(){
echo "Bu benim varsayılan olarak çalışan ilk fonksiyonum <br>";
}
public function yas($yas){
echo $yas;
}
public function __destruct(){
echo "<br>Bu benim varsayılan olarak en son çalışan fonksiyonum";
}
}
$viptema = new viptema();
$viptema->yas(35);
//Çıktı:
//Bu benim varsayılan olarak çalışan ilk fonksiyonum
//35
//Bu benim varsayılan olarak en son çalışan fonksiyonum
Yine yukarıdaki örnekte ise __construct ve __destruct fonksiyonları çağrılmamasına rağmen biri sınıfın en başında, diğeri sınıfın en sonunda görevini yerine getirmiş oldu. __construct için daha mantıklı örnek verecek olursak veri tabanı sınıfı yazıyorsak bağlantının ilk seferde kurulması gerektiğinden böyle bir sınıfta kullanılabilir. __destruct için ise yine yapılan işlemlerin sonunda bağlantı sonlandırmak veya hataları göstermek için kullanılabilir.
public kavramı
Fonksiyonun başında eğer public görüyorsanız sınıf dışında bu fonksiyonun çağrılabileceği anlamına gelir. yas() örneğinde olduğu gibi.
private kavramı
Eğer fonksiyonun başına private gelmiş ise bu gizli bir fonksiyondur dışarı çağrılamaz ancak private bir fonksiyon publicin içerisinde kullanılabilir.
class viptema {
private function yas($yas){
echo $yas;
}
}
$viptema = new viptema();
$viptema->yas(35);
//Çıktı:
//Fatal error: Uncaught Error: Call to private method viptema::yas() from global scope in..
Yukarıdaki örneğin çıktısında hata alırsınız bu hatada viptema sınıfı içerisinde ki yas fonksşiyonunun private olduğunu söyleyerek sizi uyarır.
class viptema {
private function deger(){
return 3;
}
public function topla($y){
echo $y+$this->deger();
}
}
$viptema = new viptema();
$viptema->topla(5);
//Çıktı:
//8
Yukarıdaki örnekte sınıf içerisinde bir fonksiyonun $this→fonksiyonAdi() olarak çağrıldığını gördük. Ayrıca private olan bir fonksiyonu sınıf içerisinde işleme dahil edebildik. Görüldüğü üzere private fonksiyonlar direkt olarak sınıf dışında çağrılamazken sınıf içerisinde işlemlere dahil olabilmektedir. Sınıf konusu çok geniş bir konu olsa da başlangıç seviyesinde PHP'de OOP nasıl kullanılıyor değinmiş olduk.