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, die von allen Objekten gemeinsam genutzt werden:
<?php
class Student {
public $school = "PHP Academy"; // Standardwert
public $name;
public $age;
}Eigenschaften ohne Standardwert beginnen als null, bis Sie sie festlegen.
Sie können 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 festlegen
$this->age = $age; // Instanzdaten festlegen
}
}Erstellen Sie Student-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 Student Klasse in student.php:
- Deklarieren Sie eine Eigenschaft
$schoolmit dem Standardwert"PHP Academy" - Deklarieren Sie die Eigenschaften
$nameund$age(keine Standardwerte) - Fügen Sie eine
setInfoMethode hinzu, die die Parameter$nameund$ageentgegennimmt und diese mit$thissetzt
Die Datei driver.php wird Ihre Klasse testen, indem sie zwei Studenten erstellt und deren Informationen ausgibt.
Spickzettel
Eigenschaften (Properties) sind Variablen, die zu einer Klasse gehören und Informationen über den Zustand des Objekts speichern. Sie müssen innerhalb der Klasse mit einem Sichtbarkeits-Schlüsselwort wie public deklariert werden.
Eigenschaften können Standardwerte haben, die von allen Objekten geteilt werden:
<?php
class Student {
public $school = "PHP Academy"; // default value
public $name;
public $age;
}Eigenschaften ohne Standardwert beginnen als null, bis sie gesetzt werden.
Verwenden Sie Methoden und $this, um Eigenschaftswerte zu setzen:
class Student {
public $school = "PHP Academy";
public $name;
public $age;
public function setInfo($name, $age) {
$this->name = $name;
$this->age = $age;
}
}Erstellen Sie Objekte und setzen Sie individuelle Daten:
$student1 = new Student();
$student1->setInfo("Alice", 20);
echo $student1->name; // Alice
echo $student1->school; // PHP AcademyEigenschaften mit Standardwerten beginnen für jedes Objekt gleich. Eigenschaften, die über Methoden gesetzt werden, sind für jedes Objekt individuell.
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