OOP(Object Oriented Programming): Nesne Yönelimli Programlama(NYP) olarak tanımlanan OOP, bir yazılım geliştirme paradigmasıdır. Kod tekrarını önleyen, modüler program geliştirmeyi amaç edinen bir yaklaşımdır.
OOP'nin temelini oluşturan Sınıflar(Classes); yazılımsal nesne oluşturan, her nesneye ait özellik ve davranışları tutan, türetilebilen ve tekrar tekrar kullanılabilen anlamlı kod bloklarıdır.
Sınıflar RAM bellekte yer kaplamazlar, ancak sınıflardan türetilen nesneler RAM bellekte yer kaplamaktadırlar.
Class içerisinde tanımlanmış bir fonksiyondan, aynı class içerisinde tanımlanmış fonksiyonlara ve değişkenlere "$this" ifadesi ile erişim sağlanır.
Sınıf Tanımlama:
class Araba {
// Sınıf özellikleri (değişkenler)
public $marka;
public $model;
// Kurucu metod (constructor)
public function __construct($marka, $model) {
$this->marka = $marka;
$this->model = $model;
}
// Sınıf metodu
public function calistir() {
return "Araba çalıştırıldı.";
}
}
Nesne Oluşturma (İnstance):
// Araba sınıfından bir nesne oluşturma
$araba1 = new Araba("Toyota", "Corolla");
Erişim ve Kullanım:
// Özelliklere erişim
echo $araba1->marka; // Çıktı: Toyota
// Metodları çağırma
echo $araba1->calistir(); // Çıktı: Araba çalıştırıldı.
Miras Alma (Inheritance):
class SUV extends Araba {
public $kasaTipi = "SUV";
}
// SUV sınıfından bir nesne oluşturma
$suv1 = new SUV("Jeep", "Wrangler");
// Özelliklere erişim
echo $suv1->kasaTipi; // Çıktı: SUV
Erişim Belirleyicileri (Access Modifiers):
class Example {
public $publicVar;
protected $protectedVar;
private $privateVar;
public function __construct() {
$this->publicVar = "Public";
$this->protectedVar = "Protected";
$this->privateVar = "Private";
}
}
$example = new Example();
echo $example->publicVar; // Çıktı: Public
//echo $example->protectedVar; // Hata! Erişim reddedildi.
//echo $example->privateVar; // Hata! Erişim reddedildi.
Özel Metodlar:
Magic Methods (Sihirli Metotlar):
class MyClass {
public function __get($name) {
echo "Dinamik olarak erişilmeye çalışılan özellik: $name";
}
}
PHP sınıfları, kodları modülerleştirmenin, bakımını kolaylaştırmanın ve kod tekrarını önlemenin güçlü bir yoludur. Nesne yönelimli programlama, daha karmaşık uygulamalar geliştirmek için önemli bir yapı taşıdır ve PHP'nin sunduğu sınıf ve nesne yapısı, bu tür projelerin geliştirilmesini kolaylaştırır.