Eigenschaften
Teil des Abschnitts Objektorientierte Programmierung der PHP-Journey von Coddy. Lektion 6 von 91.
Eigenschaften sind Variablen, die zu einer Klasse gehören. Sie speichern Informationen über den Zustand des Objekts. In PHP müssen Eigenschaften innerhalb der Klasse mit einem Sichtbarkeitsschlüsselwort wie public deklariert werden.
Eigenschaften können Standardwerte haben: Jedes neue Objekt beginnt mit demselben Anfangswert, aber jedes Objekt behält seine eigene unabhängige Kopie:
<?php
class Student {
public $school = "PHP Academy"; // Standardwert
public $name;
public $age;
}Eigenschaften ohne einen Standardwert beginnen als null, bis du sie festlegst.
Du kannst Eigenschaftswerte mithilfe einer Methode und $this festlegen:
class Student {
public $school = "PHP Academy";
public $name;
public $age;
public function setInfo($name, $age) {
$this->name = $name; // Instanzdaten setzen
$this->age = $age; // Instanzdaten setzen
}
}Erstelle Studentenobjekte und lege ihre individuellen Daten fest:
$student1 = new Student();
$student2 = new Student();
$student1->setInfo("Alice", 20);
$student2->setInfo("Bob", 22);Auf die Eigenschaften zugreifen:
echo $student1->name . "\n"; // Alice
echo $student2->name . "\n"; // Bob
echo $student1->school . "\n"; // PHP Academy
echo $student2->school . "\n"; // PHP AcademyAusgabe:
Alice
Bob
PHP Academy
PHP AcademyWichtiger Unterschied: Eigenschaften mit Standardwerten (wie $school) beginnen für jedes Objekt mit demselben Wert. Eigenschaften, die über Methoden festgelegt werden (wie $name und $age), sind für jedes Objekt einzigartig.
Aufgabe
EinfachVervollständige die Klasse Student in student.php:
- Deklariere eine Eigenschaft
$schoolmit dem Standardwert"PHP Academy" - Deklariere die Eigenschaften
$nameund$age(ohne Standardwerte) - Füge eine
setInfo-Methode hinzu, die die Parameter$nameund$ageentgegennimmt und sie mithilfe von$thissetzt
Die Datei driver.php testet deine Klasse, indem sie zwei Studenten erstellt und ihre Informationen ausgibt.
Probier es selbst
<?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";
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Objektorientierte Programmierung
1Grundlagen der OOP
Externe DateienEinführung in OOPKlassen vs. ObjekteDas Schlüsselwort $thisMethodenEigenschaftenKonstruktor (__construct)Destruktor (__destruct)Rückblick – Einfacher Taschenrechner4Vererbung
Grundlegende VererbungDas Schlüsselwort parent::MethodenüberschreibungDas Schlüsselwort finalAbstrakte KlassenRückblick – Mitarbeiterhierarchie7Kapselung
Öffentlich, geschützt, privatZugriffsmodifikatoren im DetailGetter und SetterInformationsverbergungKonstruktor-Promotion (8.0)Wiederholung – System zur Verwaltung von Schülerdatensätzen2Namespaces & Autoloading
Einführung in NamespacesDas use-SchlüsselwortPSR-4-Autoloading-StandardComposer-AutoloaderRückblick – Organisiertes Projekt5Schnittstellen & Verträge
Einführung in SchnittstellenSchnittstellen implementierenMehrere Schnittstellen implementierenSchnittstelle vs. abstrakte KlasseTyp-Hinweise mit SchnittstellenRückblick – Formrechner8Magische Methoden
Einführung in magische Methoden__toString & __debugInfo__get, __set, __isset, __unset__call & __callStatic__clone & Objektklonen__serialize & __unserializeRückblick – Benutzerdefinierte Sammlung11Typsystem & Fehlerbehandlung
TypdeklarationenNullable-TypenUnion- & Intersection-TypenException-KlassenBenutzerdefinierte Exception-HierarchieTry, Catch, FinallyRückblick – Formularvalidator14Projekt: Bibliotheksverwaltung
ProjektübersichtBuch- und Benutzerklassen3Klassen-Eigenschaften
Instanz- vs. statische EigenschaftenKonstanten in KlassenStatische Methoden & EigenschaftenPrivate & geschützte EigenschaftenSchreibgeschützte Eigenschaften (PHP 8.1)Zusammenfassung – Bankkonto-Manager6Polymorphie
Methodenüberschreibung erneut betrachtetPolymorphie über SchnittstellenTyp-Hinweise & Union-TypenSpätes statisches BindenRückblick – Zahlungsabwickler9Traits
Einführung in TraitsMehrere Traits verwendenAuflösung von Trait-KonfliktenAbstrakte Methoden in TraitsTraits vs. Vererbung12Entwurfsmuster Teil 1
Einführung in EntwurfsmusterSingleton-MusterFactory-MusterObserver-MusterStrategy-Muster15Abschließende Herausforderungen
E-Learning-PlattformBankingsystemEntwicklung einer SpielfigurFahrzeugvermietungÜbe selbstständig: Online-PHP-Compiler