Klassen, Objekte, Eigenschaften und Methoden in PHP

Erste Schritte: Klassen, Objekte, Eigenschaften und Methoden in PHP

Objektorientierte Programmierung (OOP) erlaubt dir, Code in Klassen zu kapseln,
um Daten (Eigenschaften) und Verhalten (Methoden) logisch zu bündeln.
Das macht große Projekte übersichtlicher, wiederverwendbar und leichter wartbar.
In diesem Tutorial bekommst du die OOP‑Grundlagen in PHP.

1. Was ist eine Klasse?

Eine Klasse ist eine Vorlage (Bauplan) für Objekte.
Darin definierst du Variablen (= Eigenschaften / Properties)
und Funktionen (= Methoden), die jedes Objekt dieser Klasse besitzt.

class Auto {
    public $marke;          // Eigenschaft
    public $geschwindigkeit = 0;

    public function beschleunigen($kmh) {  // Methode
        $this->geschwindigkeit += $kmh;
    }
}
  • $marke und $geschwindigkeit sind Eigenschaften.
  • beschleunigen() ist eine Methode, die den Zustand ändert.
  • $this verweist auf das aktuelle Objekt (siehe Abschnitt 3).

2. Ein Objekt erzeugen (Instanziieren)

Ein Objekt ist eine konkrete Instanz einer Klasse.
Erzeuge es mit new :

$auto1 = new Auto();
$auto1->marke = "VW";
$auto1->beschleunigen(50);

echo $auto1->marke;            // VW
echo $auto1->geschwindigkeit;  // 50

Jedem Objekt gehört sein eigener Zustand; mehrere Objekte derselben Klasse
können unterschiedliche Eigenschaftswerte besitzen.

3. Das $this‑Schlüsselwort

$this bezieht sich innerhalb einer Methode auf das Objekt,
das die Methode aufruft. So greifst du auf eigene Eigenschaften oder andere Methoden zu:

class Auto {
    public $geschwindigkeit = 0;

    public function bremse($kmh) {
        $this->geschwindigkeit -= $kmh;
        if ($this->geschwindigkeit < 0) {
            $this->geschwindigkeit = 0;
        }
    }
}

4. Sichtbarkeiten: public, protected, private

  • public – überall zugreifbar (außerhalb + erben)
  • protected – nur innerhalb der Klasse und ihrer Kindklassen
  • private – nur innerhalb der Klasse selbst
class Konto {
    private $saldo = 0;

    public function einzahlen($betrag) {
        if ($betrag > 0) {
            $this->saldo += $betrag;
        }
    }

    public function getSaldo() {
        return $this->saldo;
    }
}

$k = new Konto();
$k->einzahlen(100);
echo $k->getSaldo();   // 100
// $k->saldo   // Fehler: private

5. Konstruktor (__construct)

Der Konstruktor wird automatisch aufgerufen,
wenn du new Klasse() schreibst. Ideal, um Standardwerte zu setzen.

class Benutzer {
    public $name;
    public $rolle;

    public function __construct($name, $rolle = "Gast") {
        $this->name  = $name;
        $this->rolle = $rolle;
    }
}

$b = new Benutzer("Lisa", "Admin");
echo $b->rolle;  // Admin

6. Statische Eigenschaften & Methoden

Mit static gehören Variablen oder Funktionen nicht zu einem Objekt,
sondern zur Klasse selbst.

class Rechner {
    public static function add($a, $b) {
        return $a + $b;
    }
}

echo Rechner::add(3, 4);   // 7

7. Vererbung (kurzer Ausblick)

Eine Klasse kann von einer anderen erben (extends)
und deren Eigenschaften/Methoden übernehmen oder überschreiben.

class Tier {
    public function geraeusch() {
        return "Geräusch";
    }
}

class Hund extends Tier {
    public function geraeusch() {
        return "Wuff";
    }
}

$h = new Hund();
echo $h->geraeusch();  // Wuff

8. Autoloading (PSR‑4 / Composer)

In größeren Projekten willst du Klassen nicht manuell per require einbinden.
Nutze Composer‑Autoload (PSR‑4), dann lädt PHP deine Klasse automatisch,
sobald du new Klasse() aufrufst.

Fazit

Mit Klassen, Eigenschaften, Methoden und dem
$this‑Schlüsselwort kapselst du Daten und Logik in PHP.
Öffentliche (public) Teile sind von außen zugänglich, während
private/protected deine interne Integrität schützen.
Durch Konstruktoren, statische Helfer und Vererbung baust du flexible,
wartbare Anwendungen – vom einfachen Gästebuch bis zum komplexen Framework.