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!

PHP - Classes and Objects

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:

  1. Wir beginnen mit dem class-Schlüsselwort, gefolgt vom Namen unserer Klasse (in diesem Fall Car).
  2. Innerhalb der Klasse definieren wir Eigenschaften (Variablen) wie $brand und $color.
  3. 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:

  1. Wir verwenden das new-Schlüsselwort, um Objekte aus unserer Car-Klasse zu erstellen.
  2. Wir setzen die Eigenschaften jedes Objekts mit dem Pfeil (->) Operator.
  3. 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