PHP - Klassen und Objekte
Willkommen, angehende Programmierer! Heute tauchen wir in die aufregende Welt der PHP-Klassen und -Objekte ein. Keine Sorge, wenn diese Begriffe zunächst abschreckend klingen – bis zum Ende dieser Lektion werdet ihr eure eigenen Klassen und Objekte wie ein Profi erstellen können!
Was sind Klassen und Objekte?
Bevor wir uns dem Code zuwenden, lassen Sie uns verstehen, was Klassen und Objekte sind. Stellt euch vor, ihr baut ein Haus. Die Klasse wäre wie die Bauplan für das Haus, während ein Objekt das tatsächliche Haus wäre, das aus diesem Bauplan erbaut wurde. Ihr könnt viele Häuser (Objekte) aus einem einzigen Bauplan (Klasse) erstellen.
Definition einer Klasse in PHP
Lassen Sie uns mit der Erstellung unserer ersten PHP-Klasse beginnen. Wir werden eine einfache Car
-Klasse erstellen.
<?php
class Car {
// Klassen-Eigenschaften
public $brand;
public $color;
// Klassen-Methode
public function startEngine() {
return "Vroom! The $this->color $this->brand is starting.";
}
}
?>
Lassen Sie uns das einmal auseinandernehmen:
- Wir beginnen mit dem
class
-Schlüsselwort, gefolgt vom Namen unserer Klasse (in diesem FallCar
). - Innerhalb der Klasse definieren wir Eigenschaften (Variablen) wie
$brand
und$color
. - Wir definieren auch eine Methode (Funktion) namens
startEngine()
.
Erstellung von Objekten aus einer Klasse
Nun, da wir unsere Car
-Klasse haben, lassen uns einige Auto-Objekte erstellen!
<?php
// Erstellung von Auto-Objekten
$myCar = new Car();
$myCar->brand = "Toyota";
$myCar->color = "Rot";
$friendsCar = new Car();
$friendsCar->brand = "Honda";
$friendsCar->color = "Blau";
// Verwendung der Methode des Objekts
echo $myCar->startEngine();
echo $friendsCar->startEngine();
?>
Ausgabe:
Vroom! The Rot Toyota is starting.
Vroom! The Blau Honda is starting.
Hier ist, was passiert:
- Wir verwenden das
new
-Schlüsselwort, um Objekte aus unsererCar
-Klasse zu erstellen. - Wir setzen die Eigenschaften jedes Objekts mit dem Pfeil (
->
) Operator. - Wir rufen die
startEngine()
-Methode auf jedem Objekt auf.
Konstruktor-Methode
Lassen Sie uns unsere Klasse ein wenig anspruchsvoller gestalten, indem wir einen Konstruktor hinzufügen. Ein Konstruktor ist eine spezielle Methode, die aufgerufen wird, wenn ein Objekt erstellt wird.
<?php
class Car {
public $brand;
public $color;
// Konstruktor
public function __construct($brand, $color) {
$this->brand = $brand;
$this->color = $color;
}
public function startEngine() {
return "Vroom! The $this->color $this->brand is starting.";
}
}
// Erstellung von Auto-Objekten mit Konstruktor
$myCar = new Car("Toyota", "Rot");
$friendsCar = new Car("Honda", "Blau");
echo $myCar->startEngine();
echo $friendsCar->startEngine();
?>
Der Konstruktor ermöglicht es uns, die brand
und color
beim Erstellen des Objekts festzulegen, was unseren Code sauberer und effizienter macht.
Vererbung
Eine der leistungsstarken Funktionen der OOP ist die Vererbung. Sie ermöglicht es uns, eine neue Klasse basierend auf einer bestehenden Klasse zu erstellen. Lassen uns eine ElectricCar
-Klasse erstellen, die von unserer Car
-Klasse ableitet.
<?php
class ElectricCar extends Car {
public $batteryLife;
public function __construct($brand, $color, $batteryLife) {
parent::__construct($brand, $color);
$this->batteryLife = $batteryLife;
}
public function chargeBattery() {
return "The $this->color $this->brand is charging. Current battery life: $this->batteryLife%";
}
}
$teslaModel3 = new ElectricCar("Tesla", "Weiß", 80);
echo $teslaModel3->startEngine();
echo $teslaModel3->chargeBattery();
?>
Ausgabe:
Vroom! The Weiß Tesla is starting.
The Weiß Tesla is charging. Current battery life: 80%
Hier übernimmt ElectricCar
alle Eigenschaften und Methoden der Car
-Klasse und fügt seine eigene Eigenschaft ($batteryLife
) und Methode (chargeBattery()
) hinzu.
Zugriffsmodifikatoren
In der OOP können wir die Sichtbarkeit von Eigenschaften und Methoden mit Zugriffsmodifikatoren steuern. Es gibt drei Arten:
Modifikator | Beschreibung |
---|---|
public | Überall zugänglich |
protected | Zugänglich innerhalb der Klasse und von abgeleiteten Klassen |
private | Nur innerhalb der Klasse zugänglich |
Lassen Sie uns unsere Car
-Klasse, um diese zu verwenden:
<?php
class Car {
protected $brand;
private $engineStarted = false;
public function __construct($brand) {
$this->brand = $brand;
}
public function startEngine() {
$this->engineStarted = true;
return "The $this->brand's engine is now running.";
}
public function isEngineRunning() {
return $this->engineStarted;
}
}
$myCar = new Car("Toyota");
echo $myCar->startEngine();
echo $myCar->isEngineRunning() ? "Engine is running" : "Engine is off";
// Dies würde einen Fehler verursachen: echo $myCar->engineStarted;
?>
Nun ist $brand
geschützt (innerhalb von Kindklassen zugänglich), $engineStarted
privat (nur innerhalb der Car
-Klasse zugänglich), und unsere Methoden bleiben öffentlich.
Schlussfolgerung
Glückwunsch! Ihr habt gerade die ersten Schritte in die Welt der objektorientierten Programmierung mit PHP gewagt. Wir haben Klassen, Objekte, Konstruktoren, Vererbung und Zugriffsmodifikatoren behandelt. Diese Konzepte bilden die Grundlage der OOP und werden euch gut dienen, wenn ihr eure Programmierreise fortsetzt.
Denkt daran, Übung macht den Meister. Versucht, eure eigenen Klassen zu erstellen, experimentiert mit verschiedenen Eigenschaften und Methoden und habt keine Angst vor Fehlern – das ist, wie wir lernen! Viel Spaß beim Programmieren!
Credits: Image by storyset