PHP Eğitimi

PHP ANA SAYFA PHP'ye Giriş PHP Kurulumu PHP Sözdizimi PHP Yorumları PHP Değişkenleri PHP Yankı / Yazdır PHP Veri Türleri PHP Dizeleri PHP Numaraları PHP Matematik PHP Sabitleri PHP Operatörleri PHP If...Else...Elseif PHP Anahtarı PHP Döngüleri PHP Fonksiyonları PHP Dizileri PHP Süper Küreseller PHP Normal İfade

PHP Formları

PHP Form İşleme PHP Form Doğrulama PHP Formu Gerekli PHP Formu URL/E-posta PHP Formu Tamamlandı

PHP Gelişmiş

PHP Tarih ve Saat PHP Dahil PHP Dosya İşleme PHP Dosyası Aç/Oku PHP Dosyası Oluştur/Yaz PHP Dosya Yükleme PHP Çerezleri PHP Oturumları PHP Filtreleri PHP Filtreleri Gelişmiş PHP Geri Çağırma İşlevleri PHP JSON'u PHP İstisnaları

PHP OOP

PHP OOP nedir PHP Sınıfları/Nesneleri PHP Oluşturucu PHP Yıkıcı PHP Erişim Değiştiricileri PHP Kalıtımı PHP Sabitleri PHP Soyut Sınıfları PHP Arayüzleri PHP Özellikleri PHP Statik Yöntemler PHP Statik Özellikler PHP Ad Alanları PHP Yinelenebilirler

MySQL Veritabanı

MySQL Veritabanı MySQL Bağlantısı MySQL Veritabanı Oluştur MySQL Tablo Oluştur MySQL Veri Ekle MySQL Son Kimliği Al MySQL Ekle Çoklu MySQL Hazırlandı MySQL Seçim Verisi MySQL Nerede MySQL Sıralaması MySQL Verileri Sil MySQL Güncelleme Verileri MySQL Sınır Verileri

PHP XML'i

PHP XML Ayrıştırıcıları PHP SimpleXML Ayrıştırıcı PHP SimpleXML - Al PHP XML Expat'ı PHP XML DOM'si

PHP - AJAX

AJAX'a Giriş AJAX PHP AJAX Veritabanı AJAX XML'i AJAX Canlı Arama AJAX Anketi

PHP Örnekleri

PHP Örnekleri PHP Derleyici PHP Testi PHP Alıştırmaları PHP Sertifikası

PHP Referansı

PHP'ye Genel Bakış PHP Dizisi PHP Takvimi PHP Tarihi PHP Dizini PHP Hatası PHP İstisnası PHP Dosya Sistemi PHP Filtresi PHP FTP'si PHP JSON'u PHP Anahtar Kelimeler PHP Libxml PHP Postası PHP Matematik PHP Çeşitli PHP MySQLi PHP Ağı PHP Çıkış Kontrolü PHP Normal İfade PHP SimpleXML PHP Akışı PHP Dizisi PHP Değişken İşleme PHP XML Ayrıştırıcı PHP Posta Kodu PHP Saat Dilimleri

PHP OOP - Özellikler


PHP - Özellikler nedir?

PHP yalnızca tekli kalıtımı destekler: bir alt sınıf yalnızca tek bir ebeveynden miras alabilir.

Peki ya bir sınıfın birden fazla davranışı miras alması gerekiyorsa? OOP özellikleri bu sorunu çözer.

Özellikler, birden çok sınıfta kullanılabilecek yöntemleri bildirmek için kullanılır. Nitelikler, birden çok sınıfta kullanılabilecek yöntemlere ve soyut yöntemlere sahip olabilir ve yöntemler herhangi bir erişim değiştiricisine (genel, özel veya korumalı) sahip olabilir.

Özellikler, trait anahtar kelime ile bildirilir:

Sözdizimi

<?php
trait TraitName {
  // some code...
}
?>

Bir sınıfta bir özelliği kullanmak için use anahtar kelimeyi kullanın:

Sözdizimi

<?php
class MyClass {
  use TraitName;
}
?>

Bir örneğe bakalım:

Örnek

<?php
trait message1 {
public function msg1() {
    echo "OOP is fun! ";
  }
}

class Welcome {
  use message1;
}

$obj = new Welcome();
$obj->msg1();
?>

Örnek Açıklama

Burada bir özelliği ilan ediyoruz: mesaj1. Ardından bir sınıf oluşturuyoruz: Hoş Geldiniz. Sınıf, özelliği kullanır ve özellikteki tüm yöntemler sınıfta kullanılabilir olacaktır.

Diğer sınıfların msg1() işlevini kullanması gerekiyorsa, bu sınıflarda sadece message1 özelliğini kullanın. Bu, kod tekrarını azaltır, çünkü aynı yöntemi tekrar tekrar açıklamaya gerek yoktur.



PHP - Birden Çok Özellik Kullanma

Başka bir örneğe bakalım:

Örnek

<?php
trait message1 {
  public function msg1() {
    echo "OOP is fun! ";
  }
}

trait message2 {
  public function msg2() {
    echo "OOP reduces code duplication!";
  }
}

class Welcome {
  use message1;
}

class Welcome2 {
  use message1, message2;
}

$obj = new Welcome();
$obj->msg1();
echo "<br>";

$obj2 = new Welcome2();
$obj2->msg1();
$obj2->msg2();
?>

Örnek Açıklama

Burada iki özelliği ilan ediyoruz: mesaj1 ve mesaj2. Ardından iki sınıf oluşturuyoruz: Welcome ve Welcome2. Birinci sınıf (Hoş Geldiniz) mesaj1 özelliğini kullanır ve ikinci sınıf (Hoş Geldiniz2) hem mesaj1 hem de mesaj2 özelliklerini kullanır (birden çok özellik virgülle ayrılır).