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 Sichtbarkeits-Schlüsselwort wie public deklariert werden.
Eigenschaften können Standardwerte haben – jedes neue Objekt beginnt mit demselben Initialwert, aber jedes Objekt behält seine eigene unabhängige Kopie:
<?php
class Student {
public $school = "PHP Academy"; // Standardwert
public $name;
public $age;
}Eigenschaften ohne Standardwert sind anfangs null, bis Sie sie festlegen.
Sie können Eigenschaftswerte mithilfe einer Methode und $this setzen:
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
}
}Erstellen Sie Studenten-Objekte und legen Sie deren individuelle Daten fest:
$student1 = new Student();
$student2 = new Student();
$student1->setInfo("Alice", 20);
$student2->setInfo("Bob", 22);Greifen Sie auf die Eigenschaften zu:
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 AcademyHauptunterschied: Eigenschaften mit Standardwerten (wie $school) beginnen bei jedem Objekt mit demselben Wert. Eigenschaften, die über Methoden gesetzt werden (wie $name und $age), sind für jedes Objekt eindeutig.
Aufgabe
EinfachVervollständigen Sie die Klasse Student in student.php:
- Deklarieren Sie eine Eigenschaft
$schoolmit dem Standardwert"PHP Academy" - Deklarieren Sie die Eigenschaften
$nameund$age(keine Standardwerte) - Fügen Sie eine Methode
setInfohinzu, die die Parameter$nameund$ageentgegennimmt und diese mithilfe von$thissetzt
Die Datei driver.php wird Ihre Klasse testen, indem sie zwei Studenten erstellt und deren 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 die OOPKlassen vs. ObjekteDas $this-SchlüsselwortMethodenEigenschaftenKonstruktor (__construct)Destruktor (__destruct)Rückblick - Einfacher Taschenrechner4Vererbung
Grundlagen der VererbungDas parent:: SchlüsselwortMethoden überschreibenDas final SchlüsselwortAbstrakte KlassenZusammenfassung – Mitarbeiter-Hierarchie7Kapselung
Public, Protected, PrivateZugriffsmodifikatoren im DetailGetter und SetterInformation HidingConstructor Promotion (8.0)Zusammenfassung – Studentenverwaltungssystem2Namensräume & Autoloading
Einführung in NamensräumeDas use-SchlüsselwortPSR-4 Autoloading-StandardComposer AutoloaderZusammenfassung – Organisiertes Projekt5Interfaces & Verträge
Einführung in InterfacesInterfaces implementierenMehrfache Interface-ImplementierungInterface vs. Abstrakte KlasseType Hinting mit InterfacesZusammenfassung – Formen-Rechner8Magische Methoden
Einführung in magische Methoden__toString & __debugInfo__get, __set, __isset, __unset__call & __callStatic__clone & Objekt-Klonen__serialize & __unserializeZusammenfassung - Eigene Collection11Typsystem & Fehlerbehandlung
TypdeklarationenNullable-TypenUnion- & Intersection-TypenException-KlassenEigene Exception-HierarchieTry, Catch, FinallyZusammenfassung - Formular-Validator14Projekt: Bibliotheksverwaltung
ProjektübersichtBuch- und Benutzerklassen3Klasseneigenschaften
Instanz- vs. statische EigenschaftenKonstanten in KlassenStatische Methoden & EigenschaftenPrivate & geschützte EigenschaftenReadonly-Eigenschaften (PHP 8.1)Zusammenfassung – Bankkonto-Manager6Polymorphismus
Method Overriding erneut betrachtetPolymorphismus über InterfacesType Hinting & Union TypesLate Static BindingZusammenfassung – Payment Processor9Traits
Einführung in TraitsVerwendung mehrerer TraitsKonfliktlösung bei TraitsAbstrakte Methoden in TraitsTraits vs. Vererbung12Entwurfsmuster Teil 1
Einführung in EntwurfsmusterSingleton-MusterFactory-MusterObserver-MusterStrategy-Muster15Abschlussherausforderungen
E-Learning-PlattformBanksystemSpielcharakter-EntwicklungFahrzeugvermietung