Özellikler
Coddy'nin PHP Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası — ders 6 / 91.
Özellikler (Properties), bir sınıfa ait olan değişkenlerdir. Nesnenin durumu hakkında bilgi depolarlar. PHP'de özellikler, public gibi bir görünürlük anahtar kelimesi kullanılarak sınıf içinde tanımlanmalıdır.
Özellikler varsayılan değerlere sahip olabilir — her yeni nesne aynı başlangıç değeriyle başlar, ancak her nesne kendi bağımsız kopyasını tutar:
<?php
class Student {
public $school = "PHP Academy"; // varsayılan değer
public $name;
public $age;
}Varsayılan değeri olmayan özellikler, siz onları ayarlayana kadar null olarak başlar.
Bir metot ve $this kullanarak özellik değerlerini ayarlayabilirsiniz:
class Student {
public $school = "PHP Academy";
public $name;
public $age;
public function setInfo($name, $age) {
$this->name = $name; // örnek verisini ayarla
$this->age = $age; // örnek verisini ayarla
}
}Öğrenci nesneleri oluşturun ve bireysel verilerini ayarlayın:
$student1 = new Student();
$student2 = new Student();
$student1->setInfo("Alice", 20);
$student2->setInfo("Bob", 22);Özelliklere erişin:
echo $student1->name . "\n"; // Alice
echo $student2->name . "\n"; // Bob
echo $student1->school . "\n"; // PHP Academy
echo $student2->school . "\n"; // PHP AcademyÇıktı:
Alice
Bob
PHP Academy
PHP AcademyTemel Fark: Varsayılan değerlere sahip özellikler ($school gibi) her nesne için aynı değerle başlar. Metotlar aracılığıyla ayarlanan özellikler ($name ve $age gibi) her nesneye özgüdür.
Görev
Kolaystudent.php dosyasındaki Student sınıfını tamamlayın:
- Varsayılan değeri
"PHP Academy"olan bir$schoolözelliği tanımlayın $nameve$ageözelliklerini tanımlayın (varsayılan değer yok)$nameve$ageparametrelerini alan ve bunları$thiskullanarak atayan birsetInfometodu ekleyin
driver.php dosyası, iki öğrenci oluşturarak ve bilgilerini yazdırarak sınıfınızı test edecektir.
Kendin dene
<?php
require_once 'student.php';
$student1 = new Student();
$student2 = new Student();
$student1->setInfo("Alice", 20);
$student2->setInfo("Bob", 22);
echo $student1->name . " is " . $student1->age . " at " . $student1->school . "\n";
echo $student2->name . " is " . $student2->age . " at " . $student2->school . "\n";
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Nesne Yönelimli Programlama bölümündeki tüm dersler
1OOP Temelleri
Harici DosyalarOOP'ye GirişSınıflar ve Nesneler$this Anahtar KelimesiMetotlarÖzelliklerYapıcı Metot (__construct)Yıkıcı Metot (__destruct)Özet - Basit Hesap Makinesi4Kalıtım
Temel Kalıtımparent:: Anahtar KelimesiMetot Geçersiz Kılmafinal Anahtar KelimesiSoyut SınıflarÖzet - Çalışan Hiyerarşisi7Kapsülleme
Public, Protected, PrivateErişim Belirleyicilere Derinlemesine BakışGetter ve Setter MetotlarıBilgi GizlemeConstructor Promotion (8.0)Özet - Öğrenci Kayıt Sistemi10İleri Düzey OOP Kavramları
Kompozisyon vs KalıtımDependency InjectionAnonim SınıflarEnum'lar (PHP 8.1)Fiber'lar (PHP 8.1)Nesne Klonlama: Derinlemesine İncelemeGenerator'lar ve Iterator'lar13Tasarım Kalıpları Bölüm 2
Komut KalıbıAdaptör KalıbıDekoratör KalıbıŞablon Metot KalıbıDurum KalıbıKompozit KalıbıRepository Kalıbı2İsim Alanları ve Autoloading
İsim Alanlarına Girişuse Anahtar KelimesiPSR-4 Autoloading StandartıComposer AutoloaderÖzet - Düzenli Proje5Arayüzler ve Sözleşmeler
Arayüzlere GirişArayüzleri UygulamaBirden Fazla Arayüz UygulamaArayüz vs Soyut SınıfArayüzler ile Tip BelirlemeÖzet - Şekil Hesaplayıcı8Sihirli Metotlar
Sihirli Metotlara Giriş__toString & __debugInfo__get, __set, __isset, __unset__call & __callStatic__clone & Nesne Klonlama__serialize & __unserializeÖzet - Özel Koleksiyon3Sınıf Özellikleri
Örnek ve Statik ÖzelliklerSınıflarda SabitlerStatik Metotlar ve ÖzelliklerPrivate ve Protected ÖzelliklerReadonly Özellikler (PHP 8.1)Özet - Banka Hesabı Yöneticisi6Çok Biçimlilik
Metot Geçersiz Kılmaya Yeniden BakışArayüzler ile Çok BiçimlilikType Hinting ve Union TypesLate Static BindingÖzet - Ödeme İşlemcisi9Trait'ler
Trait'lere GirişÇoklu Trait KullanımıTrait Çakışma ÇözümüTrait'lerde Soyut MetotlarTrait'ler ve Kalıtım12Tasarım Kalıpları Bölüm 1
Tasarım Kalıplarına GirişSingleton KalıbıFactory KalıbıObserver KalıbıStrategy Kalıbı15Final Meydan Okumaları
E-Öğrenme PlatformuBankacılık SistemiOyun Karakteri GeliştirmeAraç Kiralama Servisi